<head>
 <meta charset="utf-8"/>
 <link href="https://blog.csdn.net/qq_42260970/article/details/125911126" rel="canonical"/>
 <meta content="text/html; charset=utf-8" http-equiv="content-type"/>
 <meta content="webkit" name="renderer"/>
 <meta content="webkit" name="force-rendering"/>
 <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"/>
 <meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/>
 <meta content='{"pid": "blog", "spm":"1001.2101"}' name="report"/>
 <meta content="always" name="referrer"/>
 <meta content="no-siteapp" http-equiv="Cache-Control"/>
 <link href="#" media="handheld" rel="alternate"/>
 <meta content="5a59773ab8077d4a62bf469ab966a63b_1497598848" name="shenma-site-verification"/>
 <meta content="pc" name="applicable-device"/>
 <link href="https://g.csdnimg.cn/static/logo/favicon32.ico" rel="shortcut icon" type="image/x-icon"/>
 <title>
  巧用栈回溯，帮你快速定位问题-CSDN博客
 </title>
 <meta content="栈回溯" name="keywords"/>
 <meta content='{"autorun":true,"install":true,"keyword":"栈回溯"}' name="csdn-baidu-search"/>
 <meta content="文章浏览阅读3k次。在系统运行或调试过程中，程序总是出现一些出乎意料的现象（例如程序异常或者某个任务运行不是预料的）。为了帮助用户快速定位问题，减少出现问题难以定位的情况，操作系统中的栈回溯功能就显得十分重要。栈回溯到底是什么？又该如何使用呢？下面让我们一起来详细了解一下吧！（学会了这一招，以后遇到难以定位的问题还怕啥？）..._栈回溯" name="description"/>
 <link href="https://csdnimg.cn/release/blogv2/dist/pc/css/detail_enter-4be4c75969.min.css" rel="stylesheet" type="text/css"/>
 <link href="https://csdnimg.cn/release/blogv2/dist/pc/themesSkin/skin3-template/skin3-template-762f7595fd.min.css" rel="stylesheet" type="text/css"/>
 <meta content='{"type":"0","fixModel":"1"}' name="toolbar"/>
 <link href="https://csdnimg.cn/public/sandalstrap/1.4/css/sandalstrap.min.css" rel="stylesheet" type="text/css"/>
 <style>
  .MathJax, .MathJax_Message, .MathJax_Preview{
            display: none
        }
 </style>
 <link href="https://g.csdnimg.cn/common/csdn-toolbar/csdn-toolbar-default.css" rel="stylesheet" type="text/css"/>
 <link href="https://g.csdnimg.cn/collection-box/2.1.2/collection-box.css" rel="stylesheet" type="text/css"/>
 <link href="https://g.csdnimg.cn/user-tooltip/2.6/user-tooltip.css" rel="stylesheet" type="text/css"/>
 <style>
 </style>
 <style type="text/css">
  .hljs-ln{border-collapse:collapse}            .hljs-ln td{padding:0}            .hljs-ln-n{text-align: right;padding-right: 8px;}            .hljs-ln-n:before{content:attr(data-line-number)}
 </style>
 <style type="text/css">
  pre{position: relative}pre:hover .code-full-screen{display:none !important;}.code-full-screen{display: none !important;position: absolute;right: 4px;top: 3px;width: 24px !important;height: 24px !important;margin: 4px !important;z-index: 20;}pre:hover .hljs-button{display: block}.hljs-button{display: none;position: absolute;right: 4px;top: 4px;font-size: 12px;color: #ffffff;background-color: #9999AA;width:58px;text-align: center;padding:2px 0;z-index: 20;margin: 8px;border-radius: 4px;cursor: pointer; box-shadow: 0 2px 4px rgba(0,0,0,0.05), 0 2px 4px rgba(0,0,0,0.05);}.hljs-button:after{content: attr(data-title)}code .hljs-button{margin: 2px 8px;}
 </style>
 <link href="https://g.csdnimg.cn/user-accusation/1.0.5/user-accusation.css" rel="stylesheet" type="text/css"/>
 <link href="https://g.csdnimg.cn/order-payment/4.0.5/order-payment.css" rel="stylesheet" type="text/css"/>
 <link href="https://g.csdnimg.cn/side-toolbar/3.4/side-toolbar.css" rel="stylesheet" type="text/css"/>
 <link href="https://g.csdnimg.cn/user-login/3.0.0/user-login.css" rel="stylesheet" type="text/css"/>
 <style type="text/css">
  .caption{box-sizing:content-box;}
 </style>
 <style type="text/css">
  .MathJax_Hover_Frame {border-radius: .25em; -webkit-border-radius: .25em; -moz-border-radius: .25em; -khtml-border-radius: .25em; box-shadow: 0px 0px 15px #83A; -webkit-box-shadow: 0px 0px 15px #83A; -moz-box-shadow: 0px 0px 15px #83A; -khtml-box-shadow: 0px 0px 15px #83A; border: 1px solid #A6D ! important; display: inline-block; position: absolute}
.MathJax_Menu_Button .MathJax_Hover_Arrow {position: absolute; cursor: pointer; display: inline-block; border: 2px solid #AAA; border-radius: 4px; -webkit-border-radius: 4px; -moz-border-radius: 4px; -khtml-border-radius: 4px; font-family: 'Courier New',Courier; font-size: 9px; color: #F0F0F0}
.MathJax_Menu_Button .MathJax_Hover_Arrow span {display: block; background-color: #AAA; border: 1px solid; border-radius: 3px; line-height: 0; padding: 4px}
.MathJax_Hover_Arrow:hover {color: white!important; border: 2px solid #CCC!important}
.MathJax_Hover_Arrow:hover span {background-color: #CCC!important}
 </style>
 <style type="text/css">
  #MathJax_About {position: fixed; left: 50%; width: auto; text-align: center; border: 3px outset; padding: 1em 2em; background-color: #DDDDDD; color: black; cursor: default; font-family: message-box; font-size: 120%; font-style: normal; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; border-radius: 15px; -webkit-border-radius: 15px; -moz-border-radius: 15px; -khtml-border-radius: 15px; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_About.MathJax_MousePost {outline: none}
.MathJax_Menu {position: absolute; background-color: white; color: black; width: auto; padding: 2px; border: 1px solid #CCCCCC; margin: 0; cursor: default; font: menu; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
.MathJax_MenuItem {padding: 2px 2em; background: transparent}
.MathJax_MenuArrow {position: absolute; right: .5em; padding-top: .25em; color: #666666; font-size: .75em}
.MathJax_MenuActive .MathJax_MenuArrow {color: white}
.MathJax_MenuArrow.RTL {left: .5em; right: auto}
.MathJax_MenuCheck {position: absolute; left: .7em}
.MathJax_MenuCheck.RTL {right: .7em; left: auto}
.MathJax_MenuRadioCheck {position: absolute; left: 1em}
.MathJax_MenuRadioCheck.RTL {right: 1em; left: auto}
.MathJax_MenuLabel {padding: 2px 2em 4px 1.33em; font-style: italic}
.MathJax_MenuRule {border-top: 1px solid #CCCCCC; margin: 4px 1px 0px}
.MathJax_MenuDisabled {color: GrayText}
.MathJax_MenuActive {background-color: Highlight; color: HighlightText}
.MathJax_MenuDisabled:focus, .MathJax_MenuLabel:focus {background-color: #E8E8E8}
.MathJax_ContextMenu:focus {outline: none}
.MathJax_ContextMenu .MathJax_MenuItem:focus {outline: none}
#MathJax_AboutClose {top: .2em; right: .2em}
.MathJax_Menu .MathJax_MenuClose {top: -10px; left: -10px}
.MathJax_MenuClose {position: absolute; cursor: pointer; display: inline-block; border: 2px solid #AAA; border-radius: 18px; -webkit-border-radius: 18px; -moz-border-radius: 18px; -khtml-border-radius: 18px; font-family: 'Courier New',Courier; font-size: 24px; color: #F0F0F0}
.MathJax_MenuClose span {display: block; background-color: #AAA; border: 1.5px solid; border-radius: 18px; -webkit-border-radius: 18px; -moz-border-radius: 18px; -khtml-border-radius: 18px; line-height: 0; padding: 8px 0 6px}
.MathJax_MenuClose:hover {color: white!important; border: 2px solid #CCC!important}
.MathJax_MenuClose:hover span {background-color: #CCC!important}
.MathJax_MenuClose:hover:focus {outline: none}
 </style>
 <style type="text/css">
  .MathJax_Preview .MJXf-math {color: inherit!important}
 </style>
 <style type="text/css">
  .MJX_Assistive_MathML {position: absolute!important; top: 0; left: 0; clip: rect(1px, 1px, 1px, 1px); padding: 1px 0 0 0!important; border: 0!important; height: 1px!important; width: 1px!important; overflow: hidden!important; display: block!important; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none}
.MJX_Assistive_MathML.MJX_Assistive_MathML_Block {width: 100%!important}
 </style>
 <style type="text/css">
  #MathJax_Zoom {position: absolute; background-color: #F0F0F0; overflow: auto; display: block; z-index: 301; padding: .5em; border: 1px solid black; margin: 0; font-weight: normal; font-style: normal; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; box-shadow: 5px 5px 15px #AAAAAA; -webkit-box-shadow: 5px 5px 15px #AAAAAA; -moz-box-shadow: 5px 5px 15px #AAAAAA; -khtml-box-shadow: 5px 5px 15px #AAAAAA; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_ZoomOverlay {position: absolute; left: 0; top: 0; z-index: 300; display: inline-block; width: 100%; height: 100%; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
#MathJax_ZoomFrame {position: relative; display: inline-block; height: 0; width: 0}
#MathJax_ZoomEventTrap {position: absolute; left: 0; top: 0; z-index: 302; display: inline-block; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
 </style>
 <style type="text/css">
  .MathJax_Preview {color: #888}
#MathJax_Message {position: fixed; left: 1em; bottom: 1.5em; background-color: #E6E6E6; border: 1px solid #959595; margin: 0px; padding: 2px 8px; z-index: 102; color: black; font-size: 80%; width: auto; white-space: nowrap}
#MathJax_MSIE_Frame {position: absolute; top: 0; left: 0; width: 0px; z-index: 101; border: 0px; margin: 0px; padding: 0px}
.MathJax_Error {color: #CC0000; font-style: italic}
 </style>
 <style type="text/css">
  .MJXp-script {font-size: .8em}
.MJXp-right {-webkit-transform-origin: right; -moz-transform-origin: right; -ms-transform-origin: right; -o-transform-origin: right; transform-origin: right}
.MJXp-bold {font-weight: bold}
.MJXp-italic {font-style: italic}
.MJXp-scr {font-family: MathJax_Script,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-frak {font-family: MathJax_Fraktur,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-sf {font-family: MathJax_SansSerif,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-cal {font-family: MathJax_Caligraphic,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-mono {font-family: MathJax_Typewriter,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-largeop {font-size: 150%}
.MJXp-largeop.MJXp-int {vertical-align: -.2em}
.MJXp-math {display: inline-block; line-height: 1.2; text-indent: 0; font-family: 'Times New Roman',Times,STIXGeneral,serif; white-space: nowrap; border-collapse: collapse}
.MJXp-display {display: block; text-align: center; margin: 1em 0}
.MJXp-math span {display: inline-block}
.MJXp-box {display: block!important; text-align: center}
.MJXp-box:after {content: " "}
.MJXp-rule {display: block!important; margin-top: .1em}
.MJXp-char {display: block!important}
.MJXp-mo {margin: 0 .15em}
.MJXp-mfrac {margin: 0 .125em; vertical-align: .25em}
.MJXp-denom {display: inline-table!important; width: 100%}
.MJXp-denom > * {display: table-row!important}
.MJXp-surd {vertical-align: top}
.MJXp-surd > * {display: block!important}
.MJXp-script-box > *  {display: table!important; height: 50%}
.MJXp-script-box > * > * {display: table-cell!important; vertical-align: top}
.MJXp-script-box > *:last-child > * {vertical-align: bottom}
.MJXp-script-box > * > * > * {display: block!important}
.MJXp-mphantom {visibility: hidden}
.MJXp-munderover {display: inline-table!important}
.MJXp-over {display: inline-block!important; text-align: center}
.MJXp-over > * {display: block!important}
.MJXp-munderover > * {display: table-row!important}
.MJXp-mtable {vertical-align: .25em; margin: 0 .125em}
.MJXp-mtable > * {display: inline-table!important; vertical-align: middle}
.MJXp-mtr {display: table-row!important}
.MJXp-mtd {display: table-cell!important; text-align: center; padding: .5em 0 0 .5em}
.MJXp-mtr > .MJXp-mtd:first-child {padding-left: 0}
.MJXp-mtr:first-child > .MJXp-mtd {padding-top: 0}
.MJXp-mlabeledtr {display: table-row!important}
.MJXp-mlabeledtr > .MJXp-mtd:first-child {padding-left: 0}
.MJXp-mlabeledtr:first-child > .MJXp-mtd {padding-top: 0}
.MJXp-merror {background-color: #FFFF88; color: #CC0000; border: 1px solid #CC0000; padding: 1px 3px; font-style: normal; font-size: 90%}
.MJXp-scale0 {-webkit-transform: scaleX(.0); -moz-transform: scaleX(.0); -ms-transform: scaleX(.0); -o-transform: scaleX(.0); transform: scaleX(.0)}
.MJXp-scale1 {-webkit-transform: scaleX(.1); -moz-transform: scaleX(.1); -ms-transform: scaleX(.1); -o-transform: scaleX(.1); transform: scaleX(.1)}
.MJXp-scale2 {-webkit-transform: scaleX(.2); -moz-transform: scaleX(.2); -ms-transform: scaleX(.2); -o-transform: scaleX(.2); transform: scaleX(.2)}
.MJXp-scale3 {-webkit-transform: scaleX(.3); -moz-transform: scaleX(.3); -ms-transform: scaleX(.3); -o-transform: scaleX(.3); transform: scaleX(.3)}
.MJXp-scale4 {-webkit-transform: scaleX(.4); -moz-transform: scaleX(.4); -ms-transform: scaleX(.4); -o-transform: scaleX(.4); transform: scaleX(.4)}
.MJXp-scale5 {-webkit-transform: scaleX(.5); -moz-transform: scaleX(.5); -ms-transform: scaleX(.5); -o-transform: scaleX(.5); transform: scaleX(.5)}
.MJXp-scale6 {-webkit-transform: scaleX(.6); -moz-transform: scaleX(.6); -ms-transform: scaleX(.6); -o-transform: scaleX(.6); transform: scaleX(.6)}
.MJXp-scale7 {-webkit-transform: scaleX(.7); -moz-transform: scaleX(.7); -ms-transform: scaleX(.7); -o-transform: scaleX(.7); transform: scaleX(.7)}
.MJXp-scale8 {-webkit-transform: scaleX(.8); -moz-transform: scaleX(.8); -ms-transform: scaleX(.8); -o-transform: scaleX(.8); transform: scaleX(.8)}
.MJXp-scale9 {-webkit-transform: scaleX(.9); -moz-transform: scaleX(.9); -ms-transform: scaleX(.9); -o-transform: scaleX(.9); transform: scaleX(.9)}
.MathJax_PHTML .noError {vertical-align: ; font-size: 90%; text-align: left; color: black; padding: 1px 3px; border: 1px solid}
 </style>
 <style>
  @charset "UTF-8";:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px}:root{color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .04),0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .08),0px 12px 32px rgba(0, 0, 0, .12),0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0, 0, 0, .8);--el-overlay-color-light:rgba(0, 0, 0, .7);--el-overlay-color-lighter:rgba(0, 0, 0, .5);--el-mask-color:rgba(255, 255, 255, .9);--el-mask-color-extra-light:rgba(255, 255, 255, .3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.el-drawer{--el-drawer-bg-color:var(--el-dialog-bg-color, var(--el-bg-color));--el-drawer-padding-primary:var(--el-dialog-padding-primary, 20px)}.el-drawer{position:absolute;box-sizing:border-box;background-color:var(--el-drawer-bg-color);display:flex;flex-direction:column;box-shadow:var(--el-box-shadow-dark);overflow:hidden;transition:all var(--el-transition-duration)}.el-drawer .rtl,.el-drawer .ltr,.el-drawer .ttb,.el-drawer .btt{transform:translate(0)}.el-drawer__sr-focus:focus{outline:0!important}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:var(--el-drawer-padding-primary);padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.el-drawer__footer{padding:var(--el-drawer-padding-primary);padding-top:10px;text-align:right}.el-drawer__close-btn{display:inline-flex;border:none;cursor:pointer;font-size:var(--el-font-size-extra-large);color:inherit;background-color:transparent;outline:0}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{flex:1;padding:var(--el-drawer-padding-primary);overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-active,.el-drawer-fade-enter-from,.el-drawer-fade-enter-to,.el-drawer-fade-leave-active,.el-drawer-fade-leave-from,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{opacity:0}.el-drawer-fade-enter-to,.el-drawer-fade-leave-from{opacity:1}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translate(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translate(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--el-overlay-color-lighter);overflow:auto}.el-overlay .el-overlay-root{height:0}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius, 4px)}.el-popper{position:absolute;border-radius:var(--el-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;word-wrap:break-word;visibility:visible}.el-popper.is-dark{color:var(--el-bg-color);background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark .el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-text-color-primary);right:0}.el-popper.is-light{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light .el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.el-popper__arrow:before{position:absolute;width:10px;height:10px;z-index:-1;content:" ";transform:rotate(45deg);background:var(--el-text-color-primary);box-sizing:border-box}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent!important;border-bottom-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);min-width:150px;border-radius:var(--el-popover-border-radius);border:1px solid var(--el-popover-border-color);padding:var(--el-popover-padding);z-index:var(--el-index-popper);color:var(--el-text-color-regular);line-height:1.4;text-align:justify;font-size:var(--el-popover-font-size);box-shadow:var(--el-box-shadow-light);word-break:break-all;box-sizing:border-box}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;position:relative;vertical-align:middle;display:inline-block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;justify-content:center;align-items:center;font-size:var(--el-badge-font-size);height:var(--el-badge-size);padding:0 var(--el-badge-padding);white-space:nowrap;border:1px solid var(--el-bg-color)}.el-badge__content.is-fixed{position:absolute;top:0;right:calc(1px + var(--el-badge-size)/ 2);transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 19px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary)}.el-message{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 32px);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);position:fixed;left:50%;top:20px;transform:translate(-50%);background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:31px}.el-message p{margin:0}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{position:absolute;top:50%;right:19px;transform:translateY(-50%);cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}.chat-user[data-v-82e3ba45]{display:flex;padding:24px 0;justify-content:center}.chat-user .user-left[data-v-82e3ba45]{position:relative;display:flex;align-items:center}.chat-user .set[data-v-82e3ba45]{position:absolute;right:-2px;bottom:0}.chat-user .user-img[data-v-82e3ba45]{display:flex;width:32px;height:32px;border-radius:32px}.chat-user .user-img.user-vip[data-v-82e3ba45]{border:1px solid #fc5531}.chat-user .user-login[data-v-82e3ba45]{display:block;width:32px;height:32px;border-radius:32px;background-color:#0000001a;color:#999aaa;line-height:32px;text-align:center;cursor:pointer}.user-right[data-v-82e3ba45]{display:flex;flex-direction:column;justify-content:center;flex:1;color:#222226;min-width:200px}.user-right .user-desc[data-v-82e3ba45]{margin-top:4px;font-size:12px;color:#999aaa;white-space:pre;padding-bottom:2px}.vip-status[data-v-82e3ba45]{display:inline-block;min-width:56px;padding:0 4px;color:#fff;font-size:12px;font-style:normal;font-weight:400;line-height:16px;border-radius:4px;background:linear-gradient(141deg,#e2b1ff 5.23%,#6e60fd 97.15%);cursor:pointer}.popper[data-v-82e3ba45]{padding:8px 10px!important}.popper .user-desc[data-v-82e3ba45]{margin-bottom:8px}.popper .vip-status[data-v-82e3ba45]{margin-left:4px}.setting[data-v-82e3ba45]{padding-top:8px;padding-bottom:8px;align-items:center;border-top:1px solid #f2f2f5;cursor:pointer;color:#555666;font-size:12px;line-height:16px;vertical-align:middle}.setting[data-v-82e3ba45]:last-child{padding-bottom:0}.setting .icon-text[data-v-82e3ba45]{padding-left:4px}.setting .progress[data-v-82e3ba45]{display:flex;margin-bottom:2px}.setting-item[data-v-82e3ba45]{display:flex;align-items:center;column-gap:2px}.setting .icon-text[data-v-82e3ba45]{font-size:14px}.strong[data-v-82e3ba45]{font-weight:500}.chat-icon-tip[data-v-82e3ba45]{overflow:hidden;vertical-align:middle}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:20px;--el-dialog-border-radius:var(--el-border-radius-small);position:relative;margin:var(--el-dialog-margin-top,15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:0!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-dialog__header{padding:var(--el-dialog-padding-primary);padding-bottom:10px;margin-right:16px}.el-dialog__headerbtn{position:absolute;top:6px;right:0;padding:0;width:54px;height:54px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{padding:calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{padding:var(--el-dialog-padding-primary);padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px calc(var(--el-dialog-padding-primary) + 5px) 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{-webkit-animation:modal-fade-in var(--el-transition-duration);animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{-webkit-animation:dialog-fade-in var(--el-transition-duration);animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{-webkit-animation:modal-fade-out var(--el-transition-duration);animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{-webkit-animation:dialog-fade-out var(--el-transition-duration);animation:dialog-fade-out var(--el-transition-duration)}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@-webkit-keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary)}.el-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{width:32px;border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);background:0 0;padding:2px;height:auto}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:0 0;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.chat-roles-list{display:flex;flex-wrap:wrap;gap:16px;row-gap:16px;overflow-y:auto}.chat-roles-list .chat-role-item{width:256px;height:76px;padding:8px 16px;border:1px solid var(--color-border);border-radius:8px;font-size:14px;color:var(--color-text-primary)}.chat-roles-list .chat-role-item img{display:inline-block;width:18px;height:18px;margin-right:4px;vertical-align:middle}.chat-roles-list .chat-role-item .name{height:20px;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;font-weight:500;color:#222226;line-height:20px;vertical-align:middle}.chat-roles-list .desc{margin-top:8px;font-size:12px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#999aaa;line-height:16px}.player.is-fold[data-v-29bfd76b]{padding:0 24px}.player.is-fold .chat-player[data-v-29bfd76b]{height:32px;padding:0;justify-content:center}.chat-player[data-v-29bfd76b]{height:38px;display:flex;align-items:center;border-radius:8px;border:1px solid #d8f;background:linear-gradient(92deg,#dd88ff1a .32%,#6d5ffd1a);padding:0 12px;cursor:pointer}.chat-player .player-text[data-v-29bfd76b]{margin-left:8px}@media screen and (min-width: 769px){.scroll-bar-style:hover::-webkit-scrollbar-thumb,.chat-aside .aside-right .aside-main:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px #0000001a;background:#f7f7fc}.scroll-bar-style::-webkit-scrollbar,.chat-aside .aside-right .aside-main::-webkit-scrollbar{width:5px;height:5px}.scroll-bar-style::-webkit-scrollbar-thumb,.chat-aside .aside-right .aside-main::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 5px #0000;background:#0000}.scroll-bar-style::-webkit-scrollbar-track,.chat-aside .aside-right .aside-main::-webkit-scrollbar-track{border-radius:10px;background:#0000}}@keyframes breathe{0%{opacity:0}50%{opacity:1}to{opacity:0}}.add-simple{padding:4px;border-radius:20px;margin:auto 8px;display:none}.add-wrap{width:192px;padding:4px;border-radius:20px;margin:24px auto;z-index:1}.new-chat-btn{color:var(--color-text-primary);cursor:pointer;background:linear-gradient(92.49deg,#d8f3 .32%,#6d5ffd33);position:relative;transition:width .3s;transform-origin:left;overflow:hidden}.new-chat-btn:before{content:"";position:absolute;background:linear-gradient(92.49deg,#dd88ff52,#6d5ffd);width:100%;height:100%;left:0;top:0;z-index:-1;animation:breathe 3s infinite}.chat-aside{position:relative;display:flex;transition:width .3s linear}.chat-aside .aside-left{display:flex;flex-direction:column;height:100%;width:65px;border-right:1px solid rgba(0,0,0,.05)}.chat-aside .aside-left .logo-aside{padding:24px 12px 0;text-align:center}.chat-aside .aside-left .logo-aside svg{vertical-align:middle}.chat-aside .aside-left .aside-items{flex:1;padding:0 4px}.chat-aside .aside-left .aside-items .aside-chat-item{margin-top:24px;text-align:center;height:52px;width:56px;border-radius:12px;padding:4px;font-size:12px;line-height:16px;color:var(--color-text-desc);cursor:pointer}.chat-aside .aside-left .aside-items .aside-chat-item svg{color:var(--color-text-desc)}.chat-aside .aside-left .aside-items .aside-chat-item.active{background-color:#fff;color:var(--color-text-primary)}.chat-aside .aside-left .aside-items .aside-chat-item.active svg{color:var(--color-text-primary)}.chat-aside .add{padding:6px 0;display:flex;font-size:14px;justify-content:center;align-items:center;background-color:#fff;border-radius:20px}.chat-aside .add svg{margin-right:8px}.chat-aside .aside-right{width:240px;position:relative;display:flex;flex-direction:column}.chat-aside .aside-right .aside-main{flex:1;overflow-y:auto;padding:0 4px}.chat-aside .aside-right .aside-bottom{padding:0 12px 24px}.chat-aside .fold-icon{position:absolute;top:50%;margin-top:-12px;right:-16px;width:16px;height:24px;z-index:2;cursor:pointer;display:flex;justify-content:center}.chat-aside .fold-icon .fold-line{background-color:#ccccd8;width:3px;height:100%}.chat-aside .fold-icon .hover,.chat-aside .fold-icon:hover .fold-line{display:none}.chat-aside .fold-icon:hover .hover{display:block}#chat-pro .fold{width:88px}#chat-pro .fold .aside-right{display:none}#chat-pro .fold .fold-icon{transform:rotate(180deg)}#chat-pro .fold .add-simple{display:block}.simple-dialog{font-size:14px;overflow:hidden}.simple-dialog .el-dialog__header{background-color:#fff}.simple-dialog.bold .el-dialog__header{font-weight:500}.simple-dialog .el-dialog__header{padding:24px 24px 0;margin-right:0}.simple-dialog .el-dialog__body{padding:16px 24px}.simple-dialog .el-dialog__footer{padding:0 24px 24px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{-webkit-animation:v-modal-in var(--el-transition-duration-fast) ease;animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{-webkit-animation:v-modal-out var(--el-transition-duration-fast) ease forwards;animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.el-popup-parent--hidden{overflow:hidden}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:15px}.el-message-box{display:inline-block;max-width:var(--el-messagebox-width);width:100%;padding-bottom:10px;vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);border:1px solid var(--el-border-color-lighter);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-box-shadow-light);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box}.el-message-box:focus{outline:0!important}.el-overlay.is-message-box .el-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;padding:16px;overflow:auto}.el-overlay.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-message-box__header{position:relative;padding:var(--el-messagebox-padding-primary);padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:var(--el-messagebox-font-size);line-height:1;color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{position:absolute;top:var(--el-messagebox-padding-primary);right:var(--el-messagebox-padding-primary);padding:0;border:none;outline:0;background:0 0;font-size:var(--el-message-close-size,16px);cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{padding:10px var(--el-messagebox-padding-primary);color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status.el-icon{position:absolute}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px;word-break:break-word}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns{justify-content:center}.el-message-box--center .el-message-box__content{padding-left:calc(var(--el-messagebox-padding-primary) + 12px);padding-right:calc(var(--el-messagebox-padding-primary) + 12px);text-align:center}.fade-in-linear-enter-active .el-overlay-message-box{-webkit-animation:msgbox-fade-in var(--el-transition-duration);animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);border:none}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%}.el-input{--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:var(--el-input-width);line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);font-size:14px;cursor:pointer}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));cursor:text;transition:var(--el-transition-box-shadow);transform:translateZ(0);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);padding:0;outline:0;border:none;background:0 0;box-sizing:border-box}.el-input__inner:focus{outline:0}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration);margin-left:8px}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-input__wrapper,.el-input-group__append div.el-select:hover .el-input__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-input__wrapper,.el-input-group__prepend div.el-select:hover .el-input__wrapper{border-color:transparent;background-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper{box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important;z-index:2}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper:focus{outline:0;z-index:2;box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__wrapper{z-index:1;box-shadow:1px 0 0 0 var(--el-input-hover-border-color) inset,1px 0 0 0 var(--el-input-hover-border-color),0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__wrapper{z-index:2;box-shadow:-1px 0 0 0 var(--el-input-focus-border-color),-1px 0 0 0 var(--el-input-focus-border-color) inset,0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__wrapper{z-index:1;box-shadow:-1px 0 0 0 var(--el-input-hover-border-color),-1px 0 0 0 var(--el-input-hover-border-color) inset,0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-skeleton{--el-skeleton-color:var(--el-fill-color);--el-skeleton-to-color:var(--el-fill-color-darker)}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:var(--el-skeleton-color)}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg,var(--el-skeleton-color) 25%,var(--el-skeleton-to-color) 37%,var(--el-skeleton-color) 63%);background-size:400% 100%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);display:inline-block;height:16px;border-radius:var(--el-border-radius-base);width:100%}.el-skeleton__circle{border-radius:50%;width:var(--el-skeleton-circle-size);height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size)}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:var(--el-font-size-small)}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{width:unset;display:flex;align-items:center;justify-content:center;border-radius:0}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:22%;height:22%}.ske-item[data-v-2ecff2d2]{width:200px;margin-bottom:16px;margin-left:12px}.chat-history[data-v-2ecff2d2]{position:relative;height:100%}.chat-history .chat-no-data[data-v-2ecff2d2]{height:calc(100% - 120px);flex-direction:column;display:flex;justify-content:center;align-items:center}.chat-history .chat-history-list[data-v-2ecff2d2]{position:relative}.chat-history .his-item-wrap[data-v-2ecff2d2]{min-width:0;width:100%;padding:10px 8px}.chat-history .his-item-wrap .his-item-title[data-v-2ecff2d2]{display:flex;align-items:center}.chat-history .his-item-wrap .his-item-title .c-icon[data-v-2ecff2d2]{margin-right:4px}.chat-history .chat-history-item[data-v-2ecff2d2],.chat-history .chat-history-clear[data-v-2ecff2d2]{color:var(--color-text-desc);position:relative;opacity:1;display:flex;align-items:center;cursor:pointer;padding:0 6px;transition:opacity .3s}.chat-history .chat-history-item i[data-v-2ecff2d2],.chat-history .chat-history-clear i[data-v-2ecff2d2]{margin-right:10px}.chat-history .chat-history-item[data-v-2ecff2d2]{color:var(--color-text-primary);font-size:14px;border-radius:12px;margin-bottom:4px;box-sizing:border-box}.chat-history .chat-history-item[data-v-2ecff2d2]:hover{background:#fff;box-shadow:0 2px 6px #0000001a}.chat-history .chat-history-item:hover .his-action[data-v-2ecff2d2]{opacity:1}.chat-history .chat-history-item.selected[data-v-2ecff2d2]{background:#fff;box-shadow:0 2px 6px #0000001a}.chat-history .chat-history-item img[data-v-2ecff2d2]{width:18px;height:18px;margin-right:8px}.chat-history .chat-history-item:hover .icon-delete[data-v-2ecff2d2]{opacity:1}.chat-history .chat-history-item .chat-history-message[data-v-2ecff2d2]{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:22px}.chat-history .chat-history-item .his-action[data-v-2ecff2d2]{display:flex;opacity:0;align-items:center;position:absolute;right:0;top:0;height:42px;padding:0 8px 0 32px;border-radius:0 12px 12px 0;background:linear-gradient(270deg,#fff 50%,#f2f2f500);z-index:2}.chat-history .chat-history-item .chat-history-ctime[data-v-2ecff2d2]{line-height:16px;padding-top:4px;color:#999aaa}.chat-history .chat-history-item .c-icon[data-v-2ecff2d2]{z-index:9}.chat-history .chat-history-item .c-icon svg[data-v-2ecff2d2]{width:16px;height:16px}.chat-history .chat-history-item .icon-more[data-v-2ecff2d2]{height:100%;display:flex;align-items:center}.chat-history .chat-history-item .icon-more span[data-v-2ecff2d2]{line-height:0;border-radius:0;transition:all .2s}.chat-history .chat-history-item .icon-more:hover span[data-v-2ecff2d2]{border-radius:4px;background:#f2f2f5}.chat-history .edit-input[data-v-2ecff2d2]{height:22px;line-height:22px}.chat-history .edit-input[data-v-2ecff2d2] .el-input__wrapper{box-shadow:none;padding:1px 0}.chat-history .edit-input[data-v-2ecff2d2] .el-input__inner{--el-input-inner-height: 22px;padding-right:0}.chat-history .edit-input[data-v-2ecff2d2] .el-input__suffix{position:static}.chat-history .chat-history-clear[data-v-2ecff2d2]{position:absolute;right:8px;top:12px;margin-top:0;font-size:12px;white-space:nowrap}.chat-history .chat-history-clear img[data-v-2ecff2d2]{width:16px;height:16px;margin-right:9px}.el-popper.his-action-popover{padding:6px 0;border:none;border-radius:8px;background:#fff}.el-popper.his-action-popover.el-popper{min-width:108px}.el-popper.his-action-popover .his-action-popover-content ul li{display:flex;align-items:center;justify-content:center;padding:4px 0;text-align:center;cursor:pointer;transition:all .2s}.el-popper.his-action-popover .his-action-popover-content ul li span{margin-left:8px;color:#555666;font-size:14px;font-weight:400;line-height:22px}.el-popper.his-action-popover .his-action-popover-content ul li:hover{background-color:#fafafc}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary)}.el-checkbox{color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px;height:var(--el-checkbox-height,32px)}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:0 11px 0 7px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--el-checkbox-border-radius)}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:var(--el-checkbox-disabled-icon-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1);border-color:var(--el-checkbox-checked-icon-color)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:var(--el-checkbox-checked-icon-color);height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;width:var(--el-checkbox-input-width);height:var(--el-checkbox-input-height);background-color:var(--el-checkbox-bg-color);z-index:var(--el-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid transparent;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:8px;line-height:1;font-size:var(--el-checkbox-font-size)}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox:last-of-type{margin-right:0}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-tree{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree{position:relative;cursor:default;background:var(--el-fill-color-blank);color:var(--el-tree-text-color);font-size:var(--el-font-size-base)}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--el-text-color-secondary);font-size:var(--el-font-size-base)}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:var(--el-color-primary)}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:var(--el-tree-node-hover-bg-color)}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:var(--el-color-primary);color:#fff}.el-tree-node__content{--el-checkbox-height:var(--el-tree-node-content-height);display:flex;align-items:center;height:var(--el-tree-node-content-height);cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px;box-sizing:content-box}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:var(--el-tree-node-hover-bg-color)}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:var(--el-tree-expand-icon-color);font-size:12px;transform:rotate(0);transition:transform var(--el-transition-duration) ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default;visibility:hidden}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{margin-right:8px;font-size:var(--el-font-size-base);color:var(--el-tree-expand-icon-color)}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.dot-box{position:relative;overflow-x:auto;overflow-y:hidden}.dot-box .box-title{margin-bottom:16px;color:#222226;line-height:24px;font-size:16px}.dot-box .expand{position:absolute;top:22px;right:24px;z-index:2;cursor:pointer}.dot-box .expand span{font-size:14px;color:#555666;line-height:16px}.dot-box .expand i{font-size:12px}.dot-box .flex{width:100%;padding-left:2px}.dot-box .el-tree{background:none}.csdn-tree{height:352px}.csdn-tree .root-img{height:28px;width:28px}.csdn-tree .root-font{font-size:14px;line-height:28px;font-weight:500;max-width:500px;overflow:hidden;text-overflow:ellipsis}.csdn-tree .children-img{height:23px;width:23px}.csdn-tree .children-font{color:#585d6c;font-size:14px;line-height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;width:calc(100% - 11px)}.csdn-tree .mr-4{margin-right:4px}.csdn-tree img{image-rendering:-webkit-optimize-contrast}.csdn-tree .ml-32{padding-left:32px}.csdn-tree .el-tree-node__expand-icon{width:0;height:0;margin:0 5px 0 10px;position:relative;background:url(//cdn-static-devbit.csdn.net/ai100/chat/imgs/plus.png);background-size:100% 100%}.csdn-tree .expanded{background:url(//cdn-static-devbit.csdn.net/ai100/chat/imgs/reduct.png);background-size:100% 100%}.csdn-tree .is-leaf{margin:0;background-image:none;background-size:100% 100%}.csdn-tree .el-tree-node__children{cursor:pointer}.csdn-tree .el-tree-node__content:hover{background:none}.csdn-tree .el-tree-node__content{height:44px}.tree-line{width:100%;height:100%;display:flex;overflow:auto;background:none}.tree-line .el-tree-node{flex:0 0 auto;width:200px;height:352px;position:relative;border-radius:2px;margin-right:16px}.tree-line .el-tree-node__children{padding-left:16px;overflow:inherit;background:#fff}.tree-line .el-tree-node__children .el-tree-node{width:184px;height:44px}.tree-line .el-tree-node__children .el-tree-node .children-font{padding-left:11px}.tree-line .el-tree-node:before{content:"";height:42px;width:1px;position:absolute;left:-1px;top:-12px;border-width:1px;border-left:1px dashed #52627c}.tree-line .el-tree-node:last-child:before{height:32px}.tree-line .el-tree-node:after{content:"";width:20px;height:20px;position:absolute;left:2px;top:21px;border-width:1px;border-top:1px dashed #52627c}.tree-line>.el-tree-node{color:#222226;background:#fff;overflow-y:auto;overflow-x:hidden}.tree-line>.el-tree-node>.el-tree-node__content{background:#fafafc}.tree-line>.el-tree-node:after{border-top:none}.tree-line>.el-tree-node:before{left:15px;top:32px;height:12px}.tree-line .el-tree-node__expand-icon.expanded{-webkit-transform:rotate(0deg);transform:rotate(0)}.scroll .el-tree-node>.el-tree-node__children{overflow:visible!important}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#c678dd}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#98c379}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#d19a66}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-title.class_,.hljs-class .hljs-title{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}.chat-md{box-sizing:border-box}.chat-md :first-child{margin-top:0}.chat-md h1{font-size:2.2em;font-weight:700;line-height:1.1;padding-top:16px;margin-bottom:4px}.chat-md h2,.chat-md h3,.chat-md h4,.chat-md h5,.chat-md h6{line-height:1.5em;margin-top:2.2em;margin-bottom:4px}.chat-md h2{font-size:1.4em;margin:40px 10px 20px 0;padding-left:9px;border-left:6px solid #ff7e79;font-weight:700;line-height:1.4}.chat-md h3{font-weight:700;font-size:1.2em;line-height:1.4;margin:10px 0 5px;padding-top:10px}.chat-md h4{font-weight:700;text-transform:uppercase;font-size:1.1em;line-height:1.4;margin:10px 0 5px;padding-top:10px}.chat-md h5,.chat-md h6{font-size:.9em}.chat-md h5{font-weight:700;text-transform:uppercase}.chat-md h6{font-weight:400;color:#aaa}.chat-md img{width:50%;border-radius:5px;display:block;margin-bottom:15px;height:auto}.chat-md dl,.chat-md ol,.chat-md ul{padding-left:1.5em;line-height:1.8}.chat-md p{margin:0 0 20px;padding:0;line-height:1.5}.chat-md a{color:#f22f27;text-decoration:none}.chat-md a:hover{color:#f55852;text-decoration:underline}.chat-md a:focus{outline-offset:-2px}.chat-md blockquote{font-size:1em;font-style:normal;padding:30px 38px;margin:0 0 15px;position:relative;line-height:1.8;text-indent:0;border:none;color:#888}.chat-md blockquote:before{content:"“";left:12px;top:0;color:#e0e0e0;font-size:4em;font-family:Arial,serif;line-height:1em;font-weight:700;position:absolute}.chat-md blockquote:after{content:"”";right:12px;color:#e0e0e0;font-size:4em;font-family:Arial,serif;line-height:1em;font-weight:700;position:absolute;bottom:-31px}.chat-md strong,.chat-md dfn{font-weight:700}.chat-md em,.chat-md dfn{font-style:italic;font-weight:400}.chat-md del{text-decoration:line-through}.chat-md table{border-collapse:collapse;display:table;width:100%;text-align:left;margin-bottom:24px;margin-left:auto;margin-right:auto}.chat-md table tr{border:0;border-top:1px solid #ddd;background-color:#fff}.chat-md table tr:nth-child(2n){background-color:#f7f7f7}.chat-md table tr th{font-weight:700;background-color:#eff3f5;padding:8px;border:1px solid #ddd}.chat-md table tr th p{font-weight:700}.chat-md table tr td{padding:8px;border:1px solid #ddd}.chat-md figure{margin:1em 0}.chat-md figcaption{font-size:.75em;padding:.5em 2em;margin-bottom:2em}.chat-md figure img{margin-bottom:0}.chat-md hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.chat-md ol p,.chat-md ul p{margin-bottom:0}.chat-md li{margin-bottom:.5em;margin-top:.5em}.chat-md ol#footnotes{font-size:.95em;padding-top:1em;border-top:1px solid #eaeaea;counter-reset:footer-counter;list-style:none;color:#555;padding-left:5%;margin:20px 0}.chat-md ol#footnotes li{margin-bottom:10px;margin-left:16px;font-weight:400;line-height:2;list-style-type:none}.chat-md ol#footnotes li:before{content:counter(footer-counter) ". ";counter-increment:footer-counter;font-weight:800;font-size:.95em}@keyframes highfade{0%{background-color:none}20%{background-color:#ff0}to{background-color:none}}@-webkit-keyframes highfade{0%{background-color:none}20%{background-color:#ff0}to{background-color:none}}.chat-md a:target,.chat-md ol#footnotes li:target,.chat-md sup a:target{animation-name:highfade;animation-duration:2s;animation-iteration-count:1;animation-timing-function:ease-in-out;-webkit-animation-name:highfade;-webkit-animation-duration:2s;-webkit-animation-iteration-count:1;-webkit-animation-timing-function:ease-in-out}.chat-md a:target{border:0;outline:0}.chat-md .hljs{background:#1c1c28;vertical-align:middle}.chat-md li{list-style:inherit}.chat-md ol{list-style:decimal}.chat-md ul{list-style:inherit}.chat-md code:not(.hljs code){color:#c7254e;font-size:90%;background-color:#f9f2f4;font-family:Menlo,Monaco,Consolas,Courier New,monospace}.md_code_container{position:relative;font-size:0;border-radius:8px;margin:10px 0}.md_code_container code{padding:16px 8px;display:block;font-size:15px!important;overflow-y:auto}.md_code_container code::-webkit-scrollbar{width:0}.md_code_container .code-operation{display:flex;align-items:center;justify-content:space-between;height:36px;padding:0 10px;border-bottom:1px solid #666f8d}.md_code_container .code-operation .lang{color:#e8e8f0;line-height:22px;font-size:14px;font-weight:500;font-family:Courier,sans-serif}.md_code_container .chat-btns{position:relative;display:flex;justify-content:flex-end;align-items:center;white-space:initial}.md_code_container .chat_copy_btn{position:relative;display:inline-block;font-size:14px;width:24px;height:24px;padding:0;cursor:pointer;background:url(http://cdn-static-devbit.csdn.net/ai100/chat/imgs/md-copy.png);background-size:contain;z-index:8}.md_code_container .chat_copy_btn.disabled{opacity:.2}.md_code_container .chat_copy_btn.disabled:hover:before{display:none}.md_code_container .chat_copy_btn:before{display:none;content:"复制代码";position:absolute;right:-20px;top:28px;width:58px;padding:4px 8px;color:#fff;background-color:#0009;border-radius:5px;text-align:center}.md_code_container .chat_copy_btn:hover:before{display:block}.md_code_container .chat_run_btn{margin-right:10px;display:inline-block;font-size:14px;width:24px;height:24px;padding:0;cursor:pointer;background:url(https://cdn-static-devbit.csdn.net/ai100/imgs/code-operation-1.png);background-size:contain}.md_code_container .chat_run_btn.disabled{opacity:.2}.md_code_container .chat_run_btn.disabled:hover:before{display:none}.md_code_container .chat_run_btn:before{display:none;content:"运行";position:absolute;right:22px;top:28px;padding:4px 8px;color:#fff;width:28px;background-color:#0009;border-radius:5px;z-index:99;text-align:center}.md_code_container .chat_run_btn:hover:before{display:block}.md_code_container .chat_vscode_btn{margin-right:10px;display:inline-block;font-size:14px;width:24px;height:24px;padding:0;cursor:pointer;background:url(https://cdn-static-devbit.csdn.net/ai100/chat/imgs/codegpt.png);background-size:contain}.md_code_container .chat_vscode_btn.disabled{opacity:.2}.md_code_container .chat_vscode_btn.disabled:hover:before{display:none}.md_code_container .chat_vscode_btn:before{display:none;content:"使用代码插件";position:absolute;right:0;top:28px;padding:4px 8px;color:#fff;width:88px;background-color:#0009;border-radius:5px;z-index:99;text-align:center}.md_code_container .chat_vscode_btn:hover:before{display:block}.chat-feedback[data-v-f18520b4]{height:24px;border-radius:4px;display:inline-flex;justify-content:center;align-items:center;margin-left:10px;background-color:#0000000d}.chat-feedback .chat-seach-cm-icon[data-v-f18520b4]{cursor:pointer;position:relative;color:var(--color-text-content);font-size:24px;margin-right:8px;width:24px;height:100%;line-height:0;transition:color .2s}.chat-feedback .chat-seach-cm-icon[data-v-f18520b4]:hover,.chat-feedback .chat-seach-cm-icon[data-v-f18520b4]:active{opacity:.85}.chat-feedback .chat-seach-cm-icon[data-v-f18520b4]:last-child{margin-right:0}.chat-feedback .chat-seach-cm-icon.like[data-v-f18520b4],.chat-feedback .chat-seach-cm-icon.unlike[data-v-f18520b4]{color:#6d5ffd}.references{display:flex;align-items:flex-start;margin-top:10px}.references .reference_title{display:flex;align-items:center;font-size:16px;padding-left:4px;position:relative;color:var(--color-text-primary);padding-top:0;font-size:14px;font-weight:600;column-gap:4px;white-space:nowrap;height:26px}.references .reference_list{padding-left:8px;flex:1;display:flex;align-items:center;flex-wrap:wrap;column-gap:10px;row-gap:10px;line-height:18px;list-style:none}.references .reference_list .reference_item{padding:4px;border-radius:12px;background:#6d5ffd1a;max-width:100%;min-width:0;list-style:none;display:inline-flex;align-items:center;column-gap:4px;margin:0}.references .reference_list .reference_item a{font-size:13px;width:100%;height:100%;color:var(--color-text-content);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.references .reference_list .reference_item a:hover{color:var(--color-text-primary)}.references .reference_list .reference_item .certification{display:flex;align-items:center;margin-left:4px}.references .reference_list .reference_item .certification img{width:16px;height:16px;margin-right:2px}.references .reference_list .reference_item .certification img:last-child{margin-right:0}.reference-em{position:relative;height:16px;width:16px;display:inline-block;text-align:center;margin:0 2px;font-family:PingFang SC;font-size:12px;line-height:16px;border-radius:50%;color:#fff;background-color:#555570;font-style:normal!important;vertical-align:text-top}.questions-pro{margin-top:14px;display:flex;flex-wrap:wrap;font-size:14px;font-weight:400;overflow:hidden;column-gap:10px}.questions-pro .qs-left{display:flex;align-items:center;height:24px}.questions-pro .qs-left img{display:inline}.questions-pro .qs-left .qs-icon{width:16px;height:16px}.questions-pro .qs-left span{margin-left:4px;font-size:14px;color:#555666;line-height:20px;font-weight:600}.questions-pro .q{color:#555666;max-width:100%;display:inline-block;background:#fff;border:1px solid #ccccd8;cursor:pointer;line-height:20px;padding:1px 10px;border-radius:4px;margin-bottom:10px}.simple .chat-item-markmap{height:290px}.chat-item-markmap{height:370px;overflow:hidden}.chat-item-markmap .c-markmap{width:100%;height:100%}.chat-item-markmap .c-markmap .markmap{display:flex;align-items:center;width:100%;height:100%}.chat-item-markmap_toolbar{position:absolute;top:4px;right:4px}.c-markmap-loading{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;height:356px;color:#555666;font-family:PingFang SC;font-size:14px;font-style:normal;font-weight:400;line-height:24px}.c-markmap-loading img{width:48px!important;height:48px!important}.c-markmap-loading .markmap-text{margin-bottom:24px}.c-markmap-error{height:356px;text-align:center;display:flex;align-items:center;justify-content:center;color:#555666;font-family:PingFang SC;font-size:14px;font-style:normal;font-weight:400;line-height:24px}.c-markmap-error img{margin-bottom:24px}.c-markmap-error button{width:224px;margin-top:24px}.markmap-dialog-wrap{border-radius:0!important;position:relative;width:auto!important;padding:0!important}.markmap-dialog-wrap .el-dialog__headerbtn{width:16px;height:16px;top:16px;right:16px}.markmap-dialog-wrap .el-dialog__headerbtn .el-dialog__close{color:#222226}.markmap-dialog-wrap .el-dialog__header,.markmap-dialog-wrap .el-dialog__body{padding:0}.markmap-dialog-wrap .markmap-download{position:absolute;bottom:16px;right:16px}.markmap-dialog{width:auto;display:flex;justify-content:center;width:100vw;height:100vh;overflow:auto;background-color:#fff}.chat-login-btn{display:flex;padding:4px 12px;align-items:flex-start;border-radius:16px;background:#6d5ffd;color:#fff;font-family:PingFang SC;font-size:16px;font-style:normal;font-weight:500;line-height:24px;cursor:pointer}.file-doc{padding:10px;display:flex;background-color:#fff;margin-top:10px;color:#555666;border-radius:4px}.file-doc img{display:inline-block;width:24px;height:24px;margin-right:10px}.msg-action[data-v-22a03c0a]{color:#277ccc;font-size:12px;line-height:16px}.msg-action .controlBtn[data-v-22a03c0a]{cursor:pointer}.msg-left[data-v-f81b52e5] .md_doc_content{line-height:2px}.msg-left[data-v-f81b52e5] .md_doc_content code{line-height:20px}.msg-left[data-v-f81b52e5] .md_doc_content .chat-btns{line-height:25px}.markmap-icon[data-v-f81b52e5]{height:10px}.chat-markmap[data-v-f81b52e5]{position:absolute;right:0;bottom:0;height:20px;border-radius:12px 0;background:linear-gradient(141deg,#e2b1ff 5.23%,#6e60fd 97.15%);color:#fff;font-size:12px;font-weight:500;line-height:16px;padding:0 4px;display:flex;align-items:center;column-gap:2px;cursor:pointer}.paper{display:inline-flex;align-items:center;height:16px;line-height:16px;margin-right:10px}.paper .paper-main{-webkit-user-select:none;user-select:none;vertical-align:middle;font-size:12px;margin:0 4px;overflow:hidden}.paper .next,.paper .prev{cursor:pointer}.paper svg{display:inline-block;width:16px;height:16px;vertical-align:middle;stroke:#555666}.paper svg.disable{stroke:#999aaa}.vscode-dark svg{stroke:#ccccd8}.vscode-dark svg.disable{stroke:#999aaa}.chat-search_re_feedback{margin-left:10px;color:#555666}.chat-search_re_feedback .re_feedback_inner{display:flex;align-items:center;border-radius:4px;background:#f2f2f5;padding:4px 10px}.chat-search_re_feedback .re_feedback_inner .re_feedback-item{cursor:pointer;padding:0 3px;line-height:0}.chat-search_re_feedback .re_feedback_inner .re_feedback-item:last-child{margin-right:0}.chat-search_re_feedback .re_feedback_inner .re_feedback-item img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:24px;height:24px}:root,:host{--van-black: #000;--van-white: #fff;--van-gray-1: #f7f8fa;--van-gray-2: #f2f3f5;--van-gray-3: #ebedf0;--van-gray-4: #dcdee0;--van-gray-5: #c8c9cc;--van-gray-6: #969799;--van-gray-7: #646566;--van-gray-8: #323233;--van-red: #ee0a24;--van-blue: #1989fa;--van-orange: #ff976a;--van-orange-dark: #ed6a0c;--van-orange-light: #fffbe8;--van-green: #07c160;--van-gradient-red: linear-gradient(to right, #ff6034, #ee0a24);--van-gradient-orange: linear-gradient(to right, #ffd01e, #ff8917);--van-primary-color: var(--van-blue);--van-success-color: var(--van-green);--van-danger-color: var(--van-red);--van-warning-color: var(--van-orange);--van-text-color: var(--van-gray-8);--van-text-color-2: var(--van-gray-6);--van-text-color-3: var(--van-gray-5);--van-active-color: var(--van-gray-2);--van-active-opacity: .6;--van-disabled-opacity: .5;--van-background: var(--van-gray-1);--van-background-2: var(--van-white);--van-background-3: var(--van-white);--van-padding-base: 4px;--van-padding-xs: 8px;--van-padding-sm: 12px;--van-padding-md: 16px;--van-padding-lg: 24px;--van-padding-xl: 32px;--van-font-bold: 600;--van-font-size-xs: 10px;--van-font-size-sm: 12px;--van-font-size-md: 14px;--van-font-size-lg: 16px;--van-line-height-xs: 14px;--van-line-height-sm: 18px;--van-line-height-md: 20px;--van-line-height-lg: 22px;--van-base-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Segoe UI, Arial, Roboto, "PingFang SC", "miui", "Hiragino Sans GB", "Microsoft Yahei", sans-serif;--van-price-font: avenir-heavy, "PingFang SC", helvetica neue, arial, sans-serif;--van-duration-base: .3s;--van-duration-fast: .2s;--van-ease-out: ease-out;--van-ease-in: ease-in;--van-border-color: var(--van-gray-3);--van-border-width: 1px;--van-radius-sm: 2px;--van-radius-md: 4px;--van-radius-lg: 8px;--van-radius-max: 999px}.van-theme-dark{--van-text-color: #f5f5f5;--van-text-color-2: #707070;--van-text-color-3: #4d4d4d;--van-border-color: #3a3a3c;--van-active-color: #3a3a3c;--van-background: #000;--van-background-2: #1c1c1e;--van-background-3: #37363b}html{-webkit-tap-highlight-color:transparent}body{margin:0;font-family:var(--van-base-font)}a{text-decoration:none}input,button,textarea{color:inherit;font:inherit}a:focus,input:focus,button:focus,textarea:focus,[class*=van-]:focus{outline:none}ol,ul{margin:0;padding:0;list-style:none}@keyframes van-slide-up-enter{0%{transform:translate3d(0,100%,0)}}@keyframes van-slide-up-leave{to{transform:translate3d(0,100%,0)}}@keyframes van-slide-down-enter{0%{transform:translate3d(0,-100%,0)}}@keyframes van-slide-down-leave{to{transform:translate3d(0,-100%,0)}}@keyframes van-slide-left-enter{0%{transform:translate3d(-100%,0,0)}}@keyframes van-slide-left-leave{to{transform:translate3d(-100%,0,0)}}@keyframes van-slide-right-enter{0%{transform:translate3d(100%,0,0)}}@keyframes van-slide-right-leave{to{transform:translate3d(100%,0,0)}}@keyframes van-fade-in{0%{opacity:0}to{opacity:1}}@keyframes van-fade-out{0%{opacity:1}to{opacity:0}}@keyframes van-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.van-fade-enter-active{animation:var(--van-duration-base) van-fade-in both var(--van-ease-out)}.van-fade-leave-active{animation:var(--van-duration-base) van-fade-out both var(--van-ease-in)}.van-slide-up-enter-active{animation:van-slide-up-enter var(--van-duration-base) both var(--van-ease-out)}.van-slide-up-leave-active{animation:van-slide-up-leave var(--van-duration-base) both var(--van-ease-in)}.van-slide-down-enter-active{animation:van-slide-down-enter var(--van-duration-base) both var(--van-ease-out)}.van-slide-down-leave-active{animation:van-slide-down-leave var(--van-duration-base) both var(--van-ease-in)}.van-slide-left-enter-active{animation:van-slide-left-enter var(--van-duration-base) both var(--van-ease-out)}.van-slide-left-leave-active{animation:van-slide-left-leave var(--van-duration-base) both var(--van-ease-in)}.van-slide-right-enter-active{animation:van-slide-right-enter var(--van-duration-base) both var(--van-ease-out)}.van-slide-right-leave-active{animation:van-slide-right-leave var(--van-duration-base) both var(--van-ease-in)}.van-clearfix:after{display:table;clear:both;content:""}.van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;line-break:anywhere;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:3;line-break:anywhere;-webkit-box-orient:vertical}.van-safe-area-top{padding-top:constant(safe-area-inset-top);padding-top:env(safe-area-inset-top)}.van-safe-area-bottom{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.van-haptics-feedback{cursor:pointer}.van-haptics-feedback:active{opacity:var(--van-active-opacity)}[class*=van-hairline]:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid var(--van-border-color);transform:scale(.5)}.van-hairline,.van-hairline--top,.van-hairline--left,.van-hairline--right,.van-hairline--bottom,.van-hairline--surround,.van-hairline--top-bottom{position:relative}.van-hairline--top:after{border-top-width:var(--van-border-width)}.van-hairline--left:after{border-left-width:var(--van-border-width)}.van-hairline--right:after{border-right-width:var(--van-border-width)}.van-hairline--bottom:after{border-bottom-width:var(--van-border-width)}.van-hairline--top-bottom:after,.van-hairline-unset--top-bottom:after{border-width:var(--van-border-width) 0}.van-hairline--surround:after{border-width:var(--van-border-width)}:root,:host{--van-swipe-indicator-size: 6px;--van-swipe-indicator-margin: var(--van-padding-sm);--van-swipe-indicator-active-opacity: 1;--van-swipe-indicator-inactive-opacity: .3;--van-swipe-indicator-active-background: var(--van-primary-color);--van-swipe-indicator-inactive-background: var(--van-border-color)}.van-swipe{position:relative;overflow:hidden;transform:translateZ(0);cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;user-select:none}.van-swipe__track{display:flex;height:100%;transition-property:transform}.van-swipe__track--vertical{flex-direction:column}.van-swipe__indicators{position:absolute;bottom:var(--van-swipe-indicator-margin);left:50%;display:flex;transform:translate(-50%)}.van-swipe__indicators--vertical{top:50%;bottom:auto;left:var(--van-swipe-indicator-margin);flex-direction:column;transform:translateY(-50%)}.van-swipe__indicators--vertical .van-swipe__indicator:not(:last-child){margin-bottom:var(--van-swipe-indicator-size)}.van-swipe__indicator{width:var(--van-swipe-indicator-size);height:var(--van-swipe-indicator-size);background-color:var(--van-swipe-indicator-inactive-background);border-radius:100%;opacity:var(--van-swipe-indicator-inactive-opacity);transition:opacity var(--van-duration-fast),background-color var(--van-duration-fast)}.van-swipe__indicator:not(:last-child){margin-right:var(--van-swipe-indicator-size)}.van-swipe__indicator--active{background-color:var(--van-swipe-indicator-active-background);opacity:var(--van-swipe-indicator-active-opacity)}.chat-swipe-pro[data-v-63c958d4]{max-width:100%}.chat-swipe-pro .chat-swipe-content[data-v-63c958d4]{position:relative;border-radius:0 12px 12px}.chat-swipe-pro .chat-swipe-content .van-swipe[data-v-63c958d4]{transition:all .2s;cursor:auto;-webkit-user-select:auto;user-select:auto;position:relative;border-top-right-radius:12px;border-bottom-left-radius:12px;border-bottom-right-radius:12px;background-color:#6d5ffd0d;z-index:1;height:var(--swipe-height);transition-duration:.3s;transition-delay:0;transition-property:height}.chat-swipe-pro .chat-swipe-content[data-v-63c958d4]:after{content:"";position:absolute;bottom:-8px;width:calc(100% - 20px);height:8px;left:10px;background:#6d5ffd1a;border-radius:0 0 10px 10px}.chat-swipe-pro .control-view[data-v-63c958d4]{margin-top:10px;display:flex;justify-content:space-between;align-items:center;height:32px}.chat-swipe-pro .control-view.end[data-v-63c958d4]{justify-content:flex-end}.chat-swipe-pro .control-view.start[data-v-63c958d4]{justify-content:flex-start}.chat-swipe-pro .control-view .middle[data-v-63c958d4]{align-items:center;display:flex}.re-issus[data-v-a8fcf4cc]{width:100%;text-align:center;-webkit-user-select:none;user-select:none;padding-bottom:30px}.re-issus.block[data-v-a8fcf4cc]{margin:auto}.re-issus img[data-v-a8fcf4cc]{width:138px;height:153px;-webkit-user-drag:none}.re-issus-line[data-v-a8fcf4cc]{margin-top:24px;display:flex;align-items:center;justify-content:space-between}.re-issus-line .line[data-v-a8fcf4cc]{flex:1;display:block;width:100px;height:1px;background:linear-gradient(90deg,#fff0,#ccccd8e6)}.re-issus-line .line[data-v-a8fcf4cc]:last-child{transform:rotate(180deg)}.re-issus-line .msg[data-v-a8fcf4cc]{margin:0 8px;font-size:12px;color:#999aaa;font-style:normal;font-weight:400;line-height:24px}.re-issus-btn[data-v-a8fcf4cc]{cursor:pointer;margin:24px auto 0;width:240px;border:none;display:flex;padding:10px 0;height:32px;color:#fff;justify-content:center;align-items:center;background-color:#6d5ffd;border-radius:20px;transition:all .2s;font-size:12px;font-weight:400;line-height:28px}.re-issus-btn[data-v-a8fcf4cc]:active{opacity:.9}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:var(--el-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--el-transition-duration)}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/ 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{top:50%;margin-top:calc((0px - var(--el-loading-spinner-size))/ 2);width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@-webkit-keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-rotate{to{transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary)}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3)}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.share-chat-item.code-preline[data-v-b830a202] .md_doc_content .md_code_container code{white-space:pre-wrap}.share-chat-item[data-v-b830a202] .md_doc_content .reference-em{display:none}.share-chat-item[data-v-b830a202] .md_doc_content .md_code_container .chat_copy_btn:before{right:-4px}.share-chat-item .file-msg[data-v-b830a202]{border:1px solid #E8E8F0;display:inline-flex;padding:6px 10px;border-radius:4px;margin-top:6px;align-items:center}.share-chat-item .file-msg img[data-v-b830a202]{width:24px;margin-right:6px}.share-chat-item .msg-left[data-v-b830a202] .md_doc_content{line-height:2px}.share-chat-item .msg-left[data-v-b830a202] .md_doc_content code{line-height:20px}.share-chat-item .msg-left[data-v-b830a202] .md_doc_content .chat-btns{line-height:25px}.share-chat-item .markmap-icon[data-v-b830a202]{height:10px}.share-chat-item .chat-markmap[data-v-b830a202]{position:absolute;right:0;bottom:0;height:20px;border-radius:12px 0;background:linear-gradient(141deg,#e2b1ff 5.23%,#6e60fd 97.15%);color:#fff;font-size:12px;font-weight:500;line-height:16px;padding:0 4px;display:flex;align-items:center;column-gap:2px;cursor:pointer}.share-preview .share-preview-inner[data-v-cd6b7a15]{padding:4px 24px 0}.share-preview .share-preview-inner .share-preview-item[data-v-cd6b7a15]{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px}.share-preview .share-preview-inner .share-preview-item[data-v-cd6b7a15]:last-child{margin-bottom:0}.share-preview .share-preview-inner .share-preview-item .user-avatar[data-v-cd6b7a15]{border-radius:50%;border:1px solid #F2F2F5;width:32px;height:32px;font-size:0}.share-preview .share-preview-inner .share-preview-item .user-avatar img[data-v-cd6b7a15]{border-radius:50%;width:100%;height:100%}.share-preview .share-preview-inner .share-preview-item .share-preview-item-content[data-v-cd6b7a15]{margin-left:8px;flex:1;overflow:hidden;color:#222226;width:100%;box-sizing:border-box;font-size:15px;padding:4px 0}.share-preview .share-preview-inner .share-preview-item .share-preview-item-content[data-v-cd6b7a15] .chat-md p{margin:0;white-space:pre-line;line-height:24px}.share-preview .share-empty[data-v-cd6b7a15]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:40%}.share-preview .share-empty img[data-v-cd6b7a15]{width:120px}.share-preview .share-empty p[data-v-cd6b7a15]{margin:0;text-align:center;font-size:14px;color:#999aaa}.share-preview-content_inner[data-v-95fbabac],.export-image-content_inner[data-v-95fbabac]{overflow-y:auto;padding:24px 0 0}.share-preview-content_footer[data-v-95fbabac],.export-image-content_footer[data-v-95fbabac]{padding:4px;height:48px;border-radius:8px;margin:18px 24px 0;background:#6d5ffd0d;display:flex;align-items:center;justify-content:space-between}.share-preview-content_footer span[data-v-95fbabac],.export-image-content_footer span[data-v-95fbabac]{overflow:hidden;color:#999aaa;text-overflow:ellipsis;font-size:16px;font-weight:400;display:block;flex:1;padding-left:10px;word-break:break-all;white-space:nowrap}.share-preview-content_footer button[data-v-95fbabac],.export-image-content_footer button[data-v-95fbabac]{border:none;cursor:pointer;padding:0 16px;margin-left:10px;flex-shrink:0;height:40px;line-height:40px;border-radius:25px;transition:all .2s;font-weight:500;color:#fff;font-size:16px;text-align:center;background-color:#6d5ffd}.share-preview-content_footer button.save[data-v-95fbabac],.export-image-content_footer button.save[data-v-95fbabac]{padding:0 60px;margin:0 auto}.share-preview-content_footer button[data-v-95fbabac]:hover,.export-image-content_footer button[data-v-95fbabac]:hover{opacity:.9}.share-preview-content_footer.btns[data-v-95fbabac],.export-image-content_footer.btns[data-v-95fbabac]{height:40px;background:#0000}.share-export-action[data-v-95fbabac]{position:absolute;bottom:0;left:0;width:100%;padding:40px;z-index:100;display:flex;justify-content:center;align-items:center;background-color:#fff}.share-export-action[data-v-95fbabac]:before{display:block;content:" ";position:absolute;top:-38px;left:-1px;right:-1px;height:38px;pointer-events:none;background:linear-gradient(0deg,#fffc,#fff3 60%,#fff0)}.share-export-action button[data-v-95fbabac]{cursor:pointer;margin-right:32px;width:120px;height:32px;line-height:30px;border-radius:20px;transition:all .2s;font-weight:500;color:#999aaa;background-color:#fff;font-size:12px;text-align:center;border:1px solid #F2F2F5}.share-export-action button[data-v-95fbabac]:hover{background-color:#f2f2f5}.share-export-action button.primary-btn[data-v-95fbabac]{background-color:#6d5ffd;color:#fff}.share-export-action button.primary-btn[data-v-95fbabac]:hover{opacity:.9}.share-export-action button[data-v-95fbabac]:last-child{margin-right:0}.share-export-action button[data-v-95fbabac]:active{opacity:.9}.export-image-dialog{width:80%;max-width:1200px}.share-preview-dialog .el-dialog__header,.export-image-dialog .el-dialog__header{padding:0}.share-preview-dialog .el-dialog__header .el-dialog__headerbtn,.export-image-dialog .el-dialog__header .el-dialog__headerbtn{width:24px;height:24px;top:8px;right:8px;z-index:10}.share-preview-dialog .el-dialog__body,.export-image-dialog .el-dialog__body{padding:0 0 16px}@media screen and (min-width: 769px){.scroll-bar-style:hover::-webkit-scrollbar-thumb,.chat-items:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px #0000001a;background:#f7f7fc}.scroll-bar-style::-webkit-scrollbar,.chat-items::-webkit-scrollbar{width:5px;height:5px}.scroll-bar-style::-webkit-scrollbar-thumb,.chat-items::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 5px #0000;background:#0000}.scroll-bar-style::-webkit-scrollbar-track,.chat-items::-webkit-scrollbar-track{border-radius:10px;background:#0000}}.chat-items{flex:1;overflow-y:auto;height:100%;min-width:0;position:relative;display:flex;flex-direction:column}.chat-items.enable-checkbox{padding-bottom:112px}.chat-items .chat-items-scroll{padding:0 40px 24px;max-width:1036px;margin:0 auto;width:100%}.chat-items .record-item{color:#222226;width:100%;box-sizing:border-box;display:flex;justify-content:flex-start;align-items:flex-start;font-size:15px;position:relative}.chat-items .record-item .enable-check-overlay{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:6px;cursor:not-allowed;z-index:10;padding:10px 0;box-sizing:content-box}.chat-items .record-item .chat-item-checkbox{position:absolute;left:-20px;top:0}.chat-items .record-item.left .text .msg{border-radius:0 12px 12px;position:relative;background:#6d5ffd0d}.chat-items .record-item.right{flex-direction:row-reverse}.chat-items .record-item.right .text{color:#fff;border-radius:12px 0 12px 12px;background:linear-gradient(90deg,#a391ff,#7782ff)}.chat-items .record-item .text{border-radius:4px;position:relative;max-width:100%;word-break:break-all}.chat-items .record-item .text .msg{width:100%;overflow:auto;padding:10px}.chat-items .record-item .text .chat-item-loading{display:flex;align-items:center}.chat-items .record-item .text .chat-item-loading img{margin-left:4px}.chat-items .record-item .text p{margin:0;white-space:pre-line;line-height:22px}.chat-items .record-item .text p+p,.chat-items .record-item .text p+pre{margin-top:8px}.chat-items .record-item .text .icon-loading{width:20px;height:20px;vertical-align:middle}.chat-items .record-item+.record-item{margin-top:20px}.hots .hots-title{line-height:24px;display:flex;align-items:center;justify-content:space-between;color:var(--color-text-desc)}.hots .hots-title:active{opacity:.8}.hots .hots-title svg,.hots .hots-title span{cursor:pointer;vertical-align:middle}.hots .icon-refresh{transition:transform .5s linear}.hots .hots-list{margin-top:12px;column-count:2;column-gap:16px}.hots .hots-list .hot{margin-bottom:14px;cursor:pointer}.hots .hots-list .hot .hot-item{padding:12px 8px;border-radius:12px;background:#0000000d;color:var(--color-text-content)}.simple .hots-list{column-count:3!important}.input-tab-wrap[data-v-674f8e23]{position:relative}.input-tab-wrap .tab-active[data-v-674f8e23]{transition:left .2s ease-in-out;position:absolute;display:block;border-radius:12px 12px 0 0;bottom:0;left:0;width:108px;height:32px;background:linear-gradient(149deg,#e2b1ff -3.01%,#6e60fd 102.14%)}.input-tab[data-v-674f8e23]{display:flex;align-items:flex-end;height:32px}.input-tab .tab[data-v-674f8e23]{position:relative;display:flex;align-items:center;background:linear-gradient(149deg,#0000000d -3.01%,#0000000d 102.14%);padding:2px 16px;color:var(--color-text-desc);line-height:20px;cursor:pointer}.input-tab .tab[data-v-674f8e23]:first-child{border-radius:12px 0 0}.input-tab .tab[data-v-674f8e23]:last-child{border-radius:0 12px 0 0}.input-tab .tab svg[data-v-674f8e23]{z-index:2}.input-tab .tab span[data-v-674f8e23]{padding-left:4px;z-index:2}.input-tab .tab.active[data-v-674f8e23]{color:#fff;padding:6px 16px;border-radius:12px 12px 0 0}@keyframes dot-scale-dbd31b96{0%,to{width:10px;height:10px}50%{width:6px;height:6px}}.chat-search-loading-icon[data-v-dbd31b96]{width:40px;height:28px;border-radius:8px;position:relative;background:linear-gradient(141deg,#6794f5 16.67%,#9003ff 85%)}.chat-search-loading-icon .dot[data-v-dbd31b96]{background:#fff;border-radius:50%;position:absolute;top:50%;left:50%}.chat-search-loading-icon .dot[data-v-dbd31b96]:first-child{width:10px;height:10px;transform:translate(calc(-50% - 4.5px),-50%);animation:dot-scale-dbd31b96 .9s linear infinite}.chat-search-loading-icon .dot[data-v-dbd31b96]:last-child{width:6px;height:6px;transform:translate(calc(-50% + 4.5px),-50%);animation:dot-scale-dbd31b96 .9s linear infinite;animation-delay:.45s}.sug-container[data-v-d02efb7b]{max-width:1036px;padding:0 40px;position:absolute;left:0;bottom:100%;width:100%;z-index:10;margin-top:-10px}.chat-sug[data-v-d02efb7b]{width:100%;box-sizing:border-box;background:transparent;border:1px solid var(--color-border);border-radius:8px;box-shadow:0 0 10px #0000000d}.chat-sug .-popper__arrow[data-v-d02efb7b]{position:absolute;left:50%;bottom:-6px}.chat-sug .-popper__arrow[data-v-d02efb7b]:before{border:1px solid var(--color-border);background:var(--color-sug-bg)}.chat-sug .sug-box[data-v-d02efb7b]{color:var(--color-text-primary);padding:10px 0;width:100%;z-index:1;position:relative;overflow:hidden;background:var(--color-sug-bg);border-radius:8px}.chat-sug .sug-box img[data-v-d02efb7b]{width:16px;vertical-align:-3px;margin-left:4px}.chat-sug .sug-box .sug-header[data-v-d02efb7b]{height:32px;display:flex;justify-content:space-between;align-items:center;font-size:14px;padding:0 14px;margin-bottom:4px}.chat-sug .sug-box .sug-header .title[data-v-d02efb7b]{color:#fc5531;flex:1;overflow:hidden}.chat-sug .sug-box .sug-header .-icon-close[data-v-d02efb7b]{cursor:pointer;color:#fc5531}.chat-sug .sug-box .sug-header .change[data-v-d02efb7b]{cursor:pointer}.chat-sug .sug-box p[data-v-d02efb7b]{padding:14px}.chat-sug .sug-box .sug-list .sug-item[data-v-d02efb7b]{display:flex;justify-content:space-between;align-items:center;height:32px;padding:0 14px;cursor:pointer}.chat-sug .sug-box .sug-list .sug-item[data-v-d02efb7b]:hover,.chat-sug .sug-box .sug-list .sug-item.active[data-v-d02efb7b]{background:var(--color-sug-active-bg)}.chat-sug .sug-box .sug-list .sug-item span[data-v-d02efb7b]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-card[data-v-012bbe78]{width:160px;height:258px;background:#fff;border-radius:8px;overflow:hidden;border:1px soid #f2f2f5;position:relative}.role-card:hover .mask[data-v-012bbe78]{opacity:1}.role-card .mask[data-v-012bbe78]{position:absolute;top:0;left:0;width:100%;height:100%;background:#0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;opacity:0;transition:opacity .3s;z-index:9}.role-card .mask .use-button[data-v-012bbe78]{width:96px;height:36px;line-height:36px;color:#fff;font-size:12px;text-align:center;background:#6d5ffd;border-radius:20px;cursor:pointer;font-weight:500}.role-card .mask .use-button.vip[data-v-012bbe78]{background:linear-gradient(140.62deg,#e2b1ff 5.23%,#6e60fd 97.15%)}.role-card .role-avatar[data-v-012bbe78]{width:160px;height:160px}.role-card .role-star[data-v-012bbe78]{width:32px;height:32px;position:absolute;top:0;right:0;z-index:8}.role-card .role-info[data-v-012bbe78]{font-size:12px;color:var(--color-text-desc);padding:8px 12px;box-sizing:border-box}.role-card .role-info .role-title[data-v-012bbe78]{font-weight:600;font-size:16px;height:22px;line-height:22px;color:var(--color-text-primary)}.role-card .role-info .role-desc[data-v-012bbe78]{display:-webkit-box;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical;margin:4px 0 8px;min-height:32px}.role-card .role-info .role-data[data-v-012bbe78]{display:flex;justify-content:space-between;align-items:center}.role-card .role-info .role-data span[data-v-012bbe78]{display:flex;align-items:center;column-gap:4px}.directive-card[data-v-32ee0e18]{width:334px;height:108px;background:#fff;border-radius:8px;border:1px solid #f2f2f5;padding:24px;box-sizing:border-box;position:relative;overflow:hidden}.directive-card:hover .mask[data-v-32ee0e18]{opacity:1}.directive-card .mask[data-v-32ee0e18]{position:absolute;top:0;left:0;width:100%;height:100%;background:#0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;justify-content:center;align-items:center;opacity:0;transition:opacity .3s;color:#fff;font-size:12px;row-gap:8px;font-weight:500;z-index:9;white-space:nowrap}.directive-card .mask .use-button[data-v-32ee0e18]{width:96px;height:36px;line-height:36px;color:#fff;text-align:center;background:#6d5ffd;border-radius:20px;cursor:pointer}.directive-card .mask .use-button.vip[data-v-32ee0e18]{background:linear-gradient(140.62deg,#e2b1ff 5.23%,#6e60fd 97.15%)}.directive-card .directive-star[data-v-32ee0e18]{width:32px;height:32px;position:absolute;top:0;right:0;z-index:8}.directive-card .directive-title[data-v-32ee0e18]{font-weight:600;font-size:16px;height:22px;line-height:22px;color:var(--color-text-primary);display:flex;align-items:center;column-gap:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.directive-card .directive-desc[data-v-32ee0e18]{display:-webkit-box;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical;margin:8px 0 0;color:var(--color-text-desc);font-size:12px}@media screen and (min-width: 769px){.scroll-bar-style[data-v-19bf0cf1]:hover::-webkit-scrollbar-thumb,.directive-input .directive-input-content[data-v-19bf0cf1]:hover::-webkit-scrollbar-thumb,.directive-input[data-v-19bf0cf1]:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px #0000001a;background:#f7f7fc}.scroll-bar-style[data-v-19bf0cf1]::-webkit-scrollbar,.directive-input .directive-input-content[data-v-19bf0cf1]::-webkit-scrollbar,.directive-input[data-v-19bf0cf1]::-webkit-scrollbar{width:5px;height:5px}.scroll-bar-style[data-v-19bf0cf1]::-webkit-scrollbar-thumb,.directive-input .directive-input-content[data-v-19bf0cf1]::-webkit-scrollbar-thumb,.directive-input[data-v-19bf0cf1]::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 5px #0000;background:#0000}.scroll-bar-style[data-v-19bf0cf1]::-webkit-scrollbar-track,.directive-input .directive-input-content[data-v-19bf0cf1]::-webkit-scrollbar-track,.directive-input[data-v-19bf0cf1]::-webkit-scrollbar-track{border-radius:10px;background:#0000}}.ske[data-v-19bf0cf1]{display:flex;gap:16px;height:258px}.ske .ske-item[data-v-19bf0cf1]{flex:1;height:100%}.ske-2[data-v-19bf0cf1]{display:grid;grid-template-columns:repeat(3,33.33%);grid-template-rows:repeat(3,33.33%);grid-row-gap:15px;grid-column-gap:15px}.ske-2 .ske-2-item[data-v-19bf0cf1]{height:108px}.directive-input[data-v-19bf0cf1]{overflow:hidden;background:#fff;position:relative;z-index:2;border-radius:12px 12px 0 0}.directive-input[data-v-19bf0cf1]:after{content:"";position:absolute;width:calc(100% - 20px);height:32px;bottom:0;left:0;background:red;margin:0 10px;border-bottom:1px solid #f2f2f5;background:linear-gradient(to bottom,#fff0,#fff)}.directive-input .directive-input-content[data-v-19bf0cf1]{position:relative;margin:0 auto;overflow-x:hidden;overflow-y:auto;height:var(--a0ae2212);padding:10px 4px 10px 8px;box-sizing:border-box}.directive-input .directive-input-content .roles[data-v-19bf0cf1]{height:306px}.directive-input .directive-input-content .roles:hover .arrow[data-v-19bf0cf1]{opacity:1}.directive-input .directive-input-content .roles+.title[data-v-19bf0cf1]{margin-top:24px}.directive-input .title[data-v-19bf0cf1]{font-size:16px;font-weight:600;height:40px;line-height:40px;color:var(--color-text-primary);margin-bottom:8px;padding-left:12px;box-sizing:border-box}.directive-input .arrow[data-v-19bf0cf1]{position:absolute;top:182px;z-index:99;width:32px;height:32px;cursor:pointer;color:#f2f2f5;opacity:0;transition:opacity .3s}.directive-input .arrow.l[data-v-19bf0cf1]{left:8px}.directive-input .arrow.r[data-v-19bf0cf1]{right:8px}.directive-input .arrow.disabled[data-v-19bf0cf1]{cursor:not-allowed;color:#f2f2f566}.directive-input .scroll-wrapper[data-v-19bf0cf1]{width:100%;overflow:hidden;position:relative}.directive-input .role-list[data-v-19bf0cf1]{display:flex;justify-content:space-between;width:max-content;column-gap:16px}.directive-input .directive-list[data-v-19bf0cf1]{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-start}.directive-input .directive-list .directive-card[data-v-19bf0cf1]{width:calc((100% - 12px) / 3);padding:10px;height:unset}.input-footer[data-v-9ee73594]{background:#fff;position:relative;z-index:2;padding:6px 60px 6px 10px;box-sizing:border-box;display:flex;border-radius:0;justify-content:space-between}.input-footer .footer-tabs[data-v-9ee73594]{display:flex;column-gap:12px}.input-footer .footer-tab[data-v-9ee73594],.input-footer .footer-btn[data-v-9ee73594]{width:24px;height:24px;box-sizing:border-box;display:flex;justify-content:center;align-items:center;border-radius:8px;overflow:hidden;color:var(--color-text-content);cursor:pointer}.input-footer .footer-tab svg[data-v-9ee73594],.input-footer .footer-btn svg[data-v-9ee73594]{width:20px;height:20px}.input-footer .footer-tools[data-v-9ee73594]{display:flex;align-items:center}.input-footer .footer-tab[data-v-9ee73594]:hover,.input-footer .footer-tab.active[data-v-9ee73594]{background:#6d5ffd1a;color:#6d5ffd}.input-footer .footer-tab.active[data-v-9ee73594]{pointer-events:none}.input-footer .optimize[data-v-9ee73594]{display:flex;align-items:center;width:max-content;border-radius:4px;column-gap:2px;padding:0 4px;white-space:nowrap;background:#6d5ffd1a;color:#6d5ffd;cursor:pointer}.input-footer .optimize img[data-v-9ee73594]{width:20px}@media screen and (min-width: 769px){.scroll-bar-style[data-v-95d49b49]:hover::-webkit-scrollbar-thumb,.input-bar .input-text[data-v-95d49b49] .textarea textarea:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px #0000001a;background:#f7f7fc}.scroll-bar-style[data-v-95d49b49]::-webkit-scrollbar,.input-bar .input-text[data-v-95d49b49] .textarea textarea::-webkit-scrollbar{width:5px;height:5px}.scroll-bar-style[data-v-95d49b49]::-webkit-scrollbar-thumb,.input-bar .input-text[data-v-95d49b49] .textarea textarea::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 5px #0000;background:#0000}.scroll-bar-style[data-v-95d49b49]::-webkit-scrollbar-track,.input-bar .input-text[data-v-95d49b49] .textarea textarea::-webkit-scrollbar-track{border-radius:10px;background:#0000}}@keyframes border-animate-95d49b49{0%,10%{background:linear-gradient(to bottom right,#6794f5,#9003ff)}15%{background:linear-gradient(to bottom,#6794f5,#9003ff)}20%{background:linear-gradient(to bottom left,#6794f5,#9003ff)}30%{background:linear-gradient(to left,#6794f5,#9003ff)}40%{background:linear-gradient(to left top,#6794f5,#9003ff)}50%{background:linear-gradient(to left top,#6794f5,#9003ff)}60%{background:linear-gradient(to left top,#6794f5,#9003ff)}70%{background:linear-gradient(to left,#6794f5,#9003ff)}80%{background:linear-gradient(to bottom left,#6794f5,#9003ff)}85%{background:linear-gradient(to bottom,#6794f5,#9003ff)}90%,to{background:linear-gradient(to bottom right,#6794f5,#9003ff)}}.input-bar[data-v-95d49b49]{position:relative;max-width:1036px;width:100%;padding:0 40px;margin:0 auto}.input-bar .chat-input-main[data-v-95d49b49]{position:relative;padding:1px}.input-bar .chat-input-main[data-v-95d49b49]:before{display:block;content:" ";position:absolute;top:-38px;left:-1px;right:-1px;height:38px;pointer-events:none;background:linear-gradient(0deg,#fffc,#fff3 60%,#fff0)}.input-bar .chat-input-main[data-v-95d49b49]:after{display:block;content:"";position:absolute;left:0;top:0;width:100%;height:100%;transition:all .3s;background:linear-gradient(to bottom right,#6794f5,#9003ff);border-radius:13px}.input-bar .input-text[data-v-95d49b49]{display:flex;flex-direction:column;border-radius:0 0 12px 12px;overflow:hidden;height:var(--28b643a1);position:relative}.input-bar .input-text .input-right[data-v-95d49b49]{z-index:2;flex:1;background-color:#fff;border-radius:0;position:relative}.input-bar .input-text .chat-doc_upload-button-pro+.input-right[data-v-95d49b49]{border-radius:0 12px 12px 0}.input-bar .input-text .chat-doc_upload-button-pro+.input-right[data-v-95d49b49] textarea{border-radius:0}.input-bar .input-text[data-v-95d49b49] .textarea{height:100%;border-radius:var(--398c1f0c);overflow:hidden;flex:1;background:#fff;z-index:2;display:flex;flex-direction:column}.input-bar .input-text[data-v-95d49b49] .textarea textarea{flex:1;padding:10px 50px 10px 10px;position:relative;background-color:transparent;height:100%;box-shadow:none;border:none;resize:none}.input-bar .input-text[data-v-95d49b49] .textarea.is-disabled ::v-deep(textarea){background-color:var(--el-disabled-bg-color)}.input-bar .input-text .c-icon[data-v-95d49b49]{position:absolute;bottom:4px;right:10px;width:40px;height:28px;display:flex;justify-content:center;align-items:center;border-radius:8px;z-index:3;background:linear-gradient(141deg,#6794f5 16.67%,#9003ff 85%)}.input-bar .input-text.focus .textarea[data-v-95d49b49]:before{animation:border-animate-95d49b49 2s forwards infinite}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px}.el-slider{width:100%;height:32px;display:flex;align-items:center}.el-slider__runway{flex:1;height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);position:relative;cursor:pointer}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{height:var(--el-slider-height);background-color:var(--el-slider-main-bg-color);border-top-left-radius:var(--el-slider-border-radius);border-bottom-left-radius:var(--el-slider-border-radius);position:absolute}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);position:absolute;z-index:1;top:var(--el-slider-button-wrapper-offset);transform:translate(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;outline:0}.el-slider__button-wrapper:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{display:inline-block;width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);border-radius:50%;box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;height:var(--el-slider-height);width:var(--el-slider-height);border-radius:var(--el-border-radius-circle);background-color:var(--el-slider-stop-bg-color);transform:translate(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translate(-50%);font-size:14px;color:var(--el-color-info);margin-top:15px;white-space:pre}.el-slider.is-vertical{position:relative;display:inline-flex;width:auto;height:100%;flex:0}.el-slider.is-vertical .el-slider__runway{width:var(--el-slider-height);height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:var(--el-slider-height);height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:var(--el-slider-button-wrapper-offset);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.el-input-number{position:relative;display:inline-flex;width:150px;line-height:30px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{width:40px;font-size:14px}.el-input-number--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.chat-settings-list-pro{height:100%}.chat-settings-list-pro .chat-setting-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.chat-settings-list-pro .chat-setting-item:first-child{margin-top:8px}.chat-settings-list-pro .chat-setting-item:last-child{margin-bottom:0}.chat-settings-list-pro .chat-setting-item .label{width:80px;height:22px;display:flex;align-items:center;column-gap:4px}.chat-settings-list-pro .chat-setting-item .label span{color:#222226;font-size:12px;font-weight:500}.chat-settings-list-pro .chat-setting-item .el-select,.chat-settings-list-pro .chat-setting-item .el-slider{width:160px;height:22px}.chat-settings-list-pro .chat-setting-item .el-select .el-slider__bar,.chat-settings-list-pro .chat-setting-item .el-slider .el-slider__bar{background:#6d5ffd}.chat-settings-list-pro .chat-setting-item .el-select .el-slider__button,.chat-settings-list-pro .chat-setting-item .el-slider .el-slider__button{width:10px;height:10px;border:1px solid #6d5ffd}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-button.is-active{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;display:inline-flex;position:relative;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:1;vertical-align:top}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:0}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{list-style:none;padding:0;margin:0;box-sizing:border-box}.el-dropdown .el-dropdown__caret-button{padding-left:0;padding-right:0;display:inline-flex;justify-content:center;align-items:center;width:32px;border-left:none}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:-1px;bottom:-1px;left:0;background:var(--el-overlay-color-lighter)}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:0}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{position:relative;top:0;left:0;z-index:var(--el-dropdown-menu-index);padding:5px 0;margin:0;background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;list-style:none}.el-dropdown-menu__item{display:flex;align-items:center;white-space:nowrap;list-style:none;line-height:22px;padding:5px 16px;margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:0}.el-dropdown-menu__item:not(.is-disabled):focus{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{margin:6px 0;border-top:1px solid var(--el-border-color-lighter)}.el-dropdown-menu__item.is-disabled{cursor:not-allowed;color:var(--el-text-color-disabled)}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{padding:7px 20px;line-height:22px;font-size:14px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{padding:2px 12px;line-height:20px;font-size:12px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.model-menu[data-v-2199bd18]{padding:20px 10px}.model[data-v-2199bd18]{display:flex;align-items:center;background-color:#fff;z-index:999}.model.active .c-icon[data-v-2199bd18]{fill:#6b5}.model .model-icon[data-v-2199bd18]{width:32px;height:32px}.model .model-item[data-v-2199bd18]{position:relative;padding-left:8px;width:196px;overflow:hidden}.model .model-item .c-icon[data-v-2199bd18]{position:absolute;right:0;top:50%;margin-top:-8px}.model .model-item .model-name[data-v-2199bd18]{line-height:22px}.model .model-item .model-desc[data-v-2199bd18]{font-size:12px;color:#999aaa;line-height:16px;margin-top:4px}.menu-item[data-v-2199bd18]{padding:0 8px;margin-bottom:16px;display:flex;align-items:center;white-space:nowrap;list-style:none;line-height:22px;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:0}.menu-item.disabled[data-v-2199bd18]{cursor:not-allowed}.c-model-btn[data-v-2199bd18]{margin-top:16px;height:20px;text-align:center;line-height:20px;color:#999aaa;overflow:hidden;cursor:pointer;transition:height .2s linear}.c-model-btn.down[data-v-2199bd18]{height:118px}.c-model-btn .c-model-btn-text[data-v-2199bd18]{display:flex;align-items:center;justify-content:center}.c-model-icon[data-v-2199bd18]{transition:all .3s ease-in-out}.down .c-model-icon[data-v-2199bd18]{transform:rotate(-180deg)}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-item-gap:16px;white-space:nowrap;color:var(--el-pagination-text-color);font-size:var(--el-pagination-font-size);font-weight:400;display:flex;align-items:center}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield}.el-pagination .el-select .el-input{width:128px}.el-pagination button{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pagination button *{pointer-events:none}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:var(--el-pagination-hover-color)}.el-pagination button.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination button.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pagination button.is-disabled,.el-pagination button:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination button:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{display:flex;align-items:center;margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{text-align:center;box-sizing:border-box}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{flex:1;display:flex;align-items:center;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 4px;background-color:var(--el-pagination-button-bg-color)}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active{color:var(--el-text-color-secondary);background-color:var(--el-fill-color-dark)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li{height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);font-size:var(--el-pagination-font-size-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select .el-input{width:100px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0;padding:0;margin:0;display:flex;align-items:center}.el-pager li{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:0}.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pager li.is-disabled,.el-pager li:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px}.el-tag{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary);--el-tag-text-color:var(--el-color-primary);background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);display:inline-flex;justify-content:center;align-items:center;vertical-align:middle;height:24px;padding:0 9px;font-size:var(--el-tag-font-size);line-height:1;border-width:1px;border-style:solid;border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px}.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color)}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3);--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning,.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain{--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary);--el-tag-bg-color:var(--el-fill-color-blank)}.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{padding:0 11px;height:32px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{padding:0 7px;height:20px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-select-dropdown__item{font-size:var(--el-font-size-base);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.selected{color:var(--el-color-primary);font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:var(--el-border-color-light)}.el-select-group__split-dash{position:absolute;left:20px;right:20px;height:1px;background:var(--el-border-color-light)}.el-select-group__title{padding-left:20px;font-size:12px;color:var(--el-color-info);line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown .el-select-dropdown__option-item.is-selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown .el-select-dropdown__item.is-disabled:hover{background-color:unset}.el-select-dropdown .el-select-dropdown__item.is-disabled.selected{color:var(--el-text-color-disabled)}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size)}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select-dropdown__header{padding:10px;border-bottom:1px solid var(--el-border-color-light)}.el-select-dropdown__footer{padding:10px;border-top:1px solid var(--el-border-color-light)}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px}.el-select{display:inline-block;position:relative;vertical-align:middle;line-height:32px}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select .el-select-tags-wrapper.has-prefix{margin-left:6px}.el-select--large{line-height:40px}.el-select--large .el-select-tags-wrapper.has-prefix{margin-left:8px}.el-select--small{line-height:24px}.el-select--small .el-select-tags-wrapper.has-prefix{margin-left:4px}.el-select .el-select__tags>span{display:inline-block}.el-select:hover:not(.el-select--disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-border-color-hover) inset}.el-select .el-select__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select .el-input__wrapper{cursor:pointer}.el-select .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select .el-input__inner{cursor:pointer}.el-select .el-input{display:flex}.el-select .el-input .el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:transform var(--el-transition-duration);transform:rotate(0);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(-180deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(0);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select .el-input .el-select__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select .el-input .el-select__caret.el-icon{position:relative;height:inherit;z-index:2}.el-select .el-input.is-disabled .el-input__wrapper{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select .el-input.is-disabled .el-input__inner,.el-select .el-input.is-disabled .el-select__caret{cursor:not-allowed}.el-select .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-disabled{cursor:not-allowed}.el-select__input--iOS{position:absolute;left:0;top:0;z-index:6}.el-select__input.is-small{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select__close:hover{color:var(--el-select-close-hover-color)}.el-select__tags{position:absolute;line-height:normal;top:50%;transform:translateY(-50%);white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__tags .el-tag:last-child{margin-right:0}.el-select__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select__tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__tags.is-disabled{cursor:not-allowed}.el-select__collapse-tags{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__collapse-tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__collapse-tags .el-tag:last-child{margin-right:0}.el-select__collapse-tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__collapse-tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select__collapse-tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__collapse-tag{line-height:inherit;height:inherit;display:flex}.el-dialog.chat-doc-manage-modal .el-loading-mask{background-color:transparent}.el-dialog.chat-doc-manage-modal .el-dialog__header{padding:24px 24px 0;font-size:16px;font-family:PingFangSC-Medium,PingFang SC;font-weight:500;color:#222226}.el-dialog.chat-doc-manage-modal .el-dialog__header .el-dialog__headerbtn{color:#999aaa;top:0}.el-dialog.chat-doc-manage-modal .el-dialog__header .el-dialog__headerbtn:hover .el-dialog__close{color:#999aaa}.el-dialog.chat-doc-manage-modal .el-dialog__body{padding:0 24px}.el-dialog.chat-doc-manage-modal .empty-data .is-loaded{padding-top:90px}.el-dialog.chat-doc-manage-modal .empty-data .is-loaded img{-webkit-user-select:none;user-select:none;width:120px;display:block;margin:0 auto}.el-dialog.chat-doc-manage-modal .empty-data .is-loaded p{text-align:center;font-weight:400;margin:0;font-size:14px;color:#555666;line-height:20px}.chat-doc-manage-list-wrap{display:flex;flex-direction:column;height:506px}.chat-doc-manage-list-wrap .chat-doc-manage-list{flex:1}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer *{box-sizing:border-box}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-header{width:100%;margin:5px 0}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-header .table-header-it{line-height:40px;padding:0 4px;font-size:14px;font-weight:400;color:#999aaa;-webkit-user-select:none;user-select:none}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-header .table-header-it.pointer{cursor:pointer}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row{height:328px;overflow-y:auto}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item{height:48px;margin-top:8px;background:#fff;border-radius:4px;overflow:hidden;border:1px solid #E8E8F0;transition:all .2s}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item:first-child{margin-top:0}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item:hover{border-color:#555666}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it{padding:0 4px;flex-shrink:0;line-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:400;color:#999aaa;cursor:default}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it:not(.fileName){-webkit-user-select:none;user-select:none}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it:last-child{border-right:none}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it.fileName{font-size:0}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it.fileName span,.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it.fileName img{vertical-align:middle}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it.fileName span{color:#222226;font-size:12px}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it.fileName img{width:16px;height:18px;margin-right:4px}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it.actions{font-size:0}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it.actions button,.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it.actions i{vertical-align:middle}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it.actions button{cursor:pointer;width:40px;line-height:18px;border-radius:10px;color:#555666;border:1px solid #999AAA;font-size:12px;font-weight:400;margin-right:12px;transition:all .2s;background-color:#fff}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it.actions button:hover{border-color:#555666}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it.actions button.primary-btn{color:#6d5ffd;border:1px solid #6D5FFD}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it.actions button.primary-btn:hover{background-color:#6d5ffd;color:#fff}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it.actions i{font-size:16px;cursor:pointer}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-row .table-item-it.actions i:hover{color:#595959}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .table-footer{display:flex;justify-content:center;margin-top:16px}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .chat-doc-manage-list-pagination.is-background .el-pager li{font-size:12px;transition:all .2s}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .chat-doc-manage-list-pagination.is-background .el-pager li:hover{font-weight:700;color:#222226}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .chat-doc-manage-list-pagination.is-background .el-pager li.is-active{background-color:#555666}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .chat-doc-manage-list-pagination.is-background .el-pager li.is-active:hover{color:#fff}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .chat-doc-manage-list-pagination.is-background .btn-prev:disabled{color:#e8e8ed}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .chat-doc-manage-list-pagination button{color:#555665}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .chat-doc-manage-list-pagination.is-background .btn-next:hover,.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .chat-doc-manage-list-pagination.is-background .btn-prev:hover{color:#222226}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .chat-doc-manage-list-pagination.is-background .btn-next:disabled,.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .chat-doc-manage-list-pagination.is-background .btn-prev:disabled{color:#e8e8ed}.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .chat-doc-manage-list-pagination.is-background .btn-next,.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .chat-doc-manage-list-pagination.is-background .btn-prev,.chat-doc-manage-list-wrap .chat-doc-manage-list .table-outer .chat-doc-manage-list-pagination.is-background .el-pager li{background-color:#fff;border-radius:4px}.chat-doc-manage-list-wrap .chat-doc-manage-list .flex{display:flex}.chat-doc-manage-list-wrap .chat-doc-manage-list .flex1{flex:1}.chat-doc-manage-list-wrap .chat-doc-manage-list .flex-warp{flex-wrap:wrap}.chat-doc-manage-list-wrap .chat-doc-manage-list .flex-direction-cloumn{flex-direction:column}.chat-doc-manage-list-wrap .chat-doc-manage-list .justify-content-between{justify-content:space-between}.chat-doc-manage-list-wrap .chat-doc-manage-list .justify-content-center{justify-content:center}.chat-doc-manage-list-wrap .chat-doc-manage-list .align-items-center{align-items:center}.chat-doc-manage-list-wrap .chat-doc-manage-list .align-content-between{align-content:space-between}.chat-doc-delete-confirm-dialog{width:366px}.chat-doc-delete-confirm-dialog .chat-doc-button{padding:0 23px;line-height:38px;border-radius:20px;border:1px solid #ccccd8;background-color:#fff;font-size:16px;outline:none;font-weight:400;color:#555666;cursor:pointer;transition:all .2s}.chat-doc-delete-confirm-dialog .chat-doc-button:hover{border-color:#999aaa;background:#fff;color:#555666}.chat-doc-delete-confirm-dialog .chat-doc-button.primary{color:#fff;border-color:#6d5ffd;background-color:#6d5ffd}.chat-doc-delete-confirm-dialog .chat-doc-button.primary:hover{background-color:#6d5ffd}.chat-doc-delete-confirm-dialog .chat-doc-button.disable{cursor:not-allowed;border:none;background-color:#6d5ffd80}.chat-doc-delete-confirm-dialog .chat-doc-button.disable:hover{background-color:#6d5ffd80}.chat-doc-delete-confirm-dialog .chat-doc-button{padding:0 34px}.chat-doc-delete-confirm-dialog .el-message-box__content{padding-bottom:32px}.chat-doc-upload-step{display:flex;white-space:nowrap;margin-top:41px;padding:0 24px}.chat-doc-upload-step_item{display:flex;align-items:center;position:relative;flex-shrink:1}.chat-doc-upload-step_item__label{font-size:0}.chat-doc-upload-step_item__label-icon{display:inline-block;border-radius:50%;vertical-align:middle;width:24px;height:24px;background:#ccccd8;text-align:center;font-size:17px;font-weight:700;color:#fff;line-height:24px;margin-right:4px}.chat-doc-upload-step_item__label-name{-webkit-user-select:none;user-select:none;display:inline-block;vertical-align:middle;font-size:16px;font-weight:400;color:#999aaa}.chat-doc-upload-step_item__label.active .chat-doc-upload-step_item__label-icon{background:#6d5ffd}.chat-doc-upload-step_item__label.active .chat-doc-upload-step_item__label-name{font-weight:600;color:#222226}.chat-doc-upload-step_item__line{height:2px;margin:0 8px;background:#ccccd8;flex:1;position:relative}.chat-doc-upload-step_item__line:before{position:absolute;content:"";display:block;width:0;height:2px;top:0;left:0;transition:width .3s;background:#555666}.chat-doc-upload-step_item__line.active:before{width:100%}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px}.el-upload{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:var(--el-text-color-regular);margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0}.el-upload--picture-card{--el-upload-picture-card-size:148px;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;display:inline-flex;justify-content:center;align-items:center}.el-upload--picture-card>i{font-size:28px;color:var(--el-text-color-secondary)}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{font-size:67px;color:var(--el-text-color-placeholder);margin-bottom:16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:var(--el-text-color-regular);margin-bottom:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{display:none;position:absolute;right:5px;top:50%;cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);transform:translateY(-50%)}.el-upload-list__item .el-icon--close:hover{opacity:1;color:var(--el-color-primary)}.el-upload-list__item .el-icon--close-tip{display:none;position:absolute;top:1px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:var(--el-color-primary);font-style:normal}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;justify-content:center;flex-direction:column;width:calc(100% - 30px);margin-left:4px}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list__item-name{color:var(--el-text-color-regular);display:inline-flex;text-align:center;align-items:center;padding:0 4px;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base)}.el-upload-list__item-name .el-icon{margin-right:6px;color:var(--el-text-color-secondary)}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none;height:100%;justify-content:center;align-items:center;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:var(--el-text-color-regular);display:none}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;padding:0;display:inline-flex}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.el-upload-list--picture-card .el-upload-list__item-status-label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:#fff;opacity:0;font-size:20px;background-color:var(--el-overlay-color-lighter);transition:opacity var(--el-transition-duration)}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:1rem}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px;display:flex;align-items:center}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:inline-flex}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;-o-object-fit:contain;object-fit:contain;position:relative;z-index:1;background-color:var(--el-color-white)}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:var(--el-overlay-color-light);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:var(--el-text-color-primary)}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1;display:flex;align-items:center}.el-progress__text{font-size:14px;color:var(--el-text-color-regular);margin-left:5px;min-width:50px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{flex-grow:1;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:var(--el-border-color-lighter);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:var(--el-color-primary);text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{transform:translateZ(0);-webkit-animation:indeterminate 3s infinite;animation:indeterminate 3s infinite}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{-webkit-animation:striped-flow 3s linear infinite;animation:striped-flow 3s linear infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@-webkit-keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@-webkit-keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}.chat-doc-progress{width:100%;height:60px;background:#e8e8ed80;margin-top:8px;border-radius:8px;padding:14px 16px 0;box-sizing:border-box}.chat-doc-progress-title{display:flex;justify-content:space-between}.chat-doc-progress-title_left{font-size:0;line-height:16px;flex:1;overflow:hidden;display:flex;align-items:center}.chat-doc-progress-title_left img{width:16px;height:16px;vertical-align:middle}.chat-doc-progress-title_left span{vertical-align:middle;font-size:12px;margin-left:4px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#555666;display:inline-block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chat-doc-progress-title_right{font-size:0;margin-left:32px;line-height:16px;display:flex;align-items:center}.chat-doc-progress-title_right .info{font-size:12px;font-family:PingFangSC-Regular,PingFang SC;font-weight:500;color:#222226}.chat-doc-progress-title_right .info.success{color:#6b5}.chat-doc-progress-title_right .info.error{color:#fc1944}.chat-doc-progress-title_right .progress{margin-left:4px;font-size:12px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#222226}.chat-doc-progress—inner{margin-top:10px}.chat-doc-progress—inner .el-progress-bar__inner{background:linear-gradient(90deg,#9ca9f6,#c5aef7)}.chat-doc-progress—inner .el-progress-bar__outer{background-color:#ccccd880}.chat-doc-upload-form{margin-top:24px;border:none}.chat-doc-upload-form .chat-doc-upload-form_inner{position:relative}.chat-doc-upload-form .chat-doc-upload-form_inner .is-drag{height:240px}.chat-doc-upload-form .chat-doc-upload-form_inner .is-drag .el-upload-dragger{width:100%;display:flex;align-items:center;justify-content:center;padding:16px;height:100%;border-radius:8px;transition:all .2s;background:linear-gradient(#fff,#fff) padding-box,repeating-linear-gradient(-45deg,#ccccd8 0,#ccccd8 4px,#fff 0,#fff 7px)}.chat-doc-upload-form .chat-doc-upload-form_inner .chat-doc-upload_empty-file .chat-doc-upload__icon{width:48px;margin-bottom:8px}.chat-doc-upload-form .chat-doc-upload-form_inner .chat-doc-upload_empty-file .chat-doc-upload__text{font-size:14px;font-weight:500;color:#222226;line-height:22px}.chat-doc-upload-form .chat-doc-upload-form_inner .chat-doc-upload_empty-file .chat-doc-upload__text em{color:#277ccc;font-style:normal}.chat-doc-upload-form .chat-doc-upload-form_inner .chat-doc-upload_empty-file .chat-doc-upload__text.disabled{cursor:default}.chat-doc-upload-form .chat-doc-upload-form_inner .chat-doc-upload-file img{width:48px;height:48px}.chat-doc-upload-form .chat-doc-upload-form_inner .chat-doc-upload-file .chat-doc-upload__mtext{font-size:14px;font-weight:500;color:#222226;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:368px;text-align:center;margin:8px auto 0}.chat-doc-upload-form .chat-doc-upload-form_inner .chat-doc-upload-file .chat-doc-upload__text{margin:4px 0 0;font-size:12px;font-weight:400;color:#999aaa}.chat-doc-upload-form .chat-doc-upload-form_inner .chat-doc-upload-file .chat-doc-upload__text em{color:#277ccc;font-style:normal}.chat-doc-upload-form .chat-doc-upload-form_inner .chat-doc-upload-file .chat-doc-upload__mini-btn{margin:8px auto 0;height:24px;background:#fff;border-radius:12px;border:1px solid #CCCCD8;padding:0 10px;font-size:12px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#222226;line-height:24px;vertical-align:middle;display:flex;align-items:center;width:115px;justify-content:center;box-sizing:border-box;overflow:hidden;transition:all .2s}.chat-doc-upload-form .chat-doc-upload-form_inner .chat-doc-upload-file .chat-doc-upload__mini-btn:hover{border-color:#999aaa;background:#fff;color:#555666}.chat-doc-upload-form .chat-doc-upload_progress{box-sizing:border-box;width:100%;height:56px}.chat-doc-upload-form .chat-doc-upload__tip{margin-top:8px;text-align:center;font-size:12px;font-weight:500;color:#8f90a6}.chat-doc-upload .chat-doc-upload-inner[data-v-bef17e76]{position:relative}.chat-doc-upload .chat-doc-upload-inner .error-text[data-v-bef17e76]{position:absolute;bottom:-30px;margin:0;font-size:12px;font-weight:400;color:#fc1944;line-height:20px}.chat-doc-upload .footer-btns .chat-doc-button[data-v-bef17e76]{height:40px;border-radius:20px;padding:0 24px}.el-dialog.chat-doc-manage-modal{background-repeat:no-repeat;background-size:100% 100%;overflow:hidden}.el-dialog.chat-doc-manage-modal .chat-doc-button{padding:0 23px;line-height:38px;border-radius:20px;border:1px solid #ccccd8;background-color:#fff;font-size:16px;outline:none;font-weight:400;color:#555666;cursor:pointer;transition:all .2s}.el-dialog.chat-doc-manage-modal .chat-doc-button:hover{border-color:#999aaa;background:#fff;color:#555666}.el-dialog.chat-doc-manage-modal .chat-doc-button.primary{color:#fff;border-color:#6d5ffd;background-color:#6d5ffd}.el-dialog.chat-doc-manage-modal .chat-doc-button.primary:hover{background-color:#6d5ffd}.el-dialog.chat-doc-manage-modal .chat-doc-button.disable{cursor:not-allowed;border:none;background-color:#6d5ffd80}.el-dialog.chat-doc-manage-modal .chat-doc-button.disable:hover{background-color:#6d5ffd80}.el-dialog.chat-doc-manage-modal .dialog-footer button:first-child{margin-right:12px}.el-dialog.chat-doc-manage-modal .el-dialog__footer{display:none}.el-dialog.chat-doc-manage-modal .footer-btns{display:block;padding:18px 0 24px;width:100%;text-align:right}.el-dialog.chat-doc-manage-modal .footer-btns button{margin-left:16px}.el-dialog.chat-doc-manage-modal .footer-btns button:first-child{margin-left:0}.chat-doc_upload-button-pro[data-v-19f371f5]{position:relative;z-index:2;background-color:#fff;padding:10px;height:100%;border-radius:12px 12px 0 0}.chat-doc_upload-button-pro[data-v-19f371f5]:after{content:"";position:absolute;bottom:0;left:10px;width:calc(100% - 20px);height:1px;background:#f2f2f5}.chat-doc_upload-button-pro button[data-v-19f371f5]{width:max-content;max-width:50%;font-size:14px;height:24px;background-color:#6d5ffd0d;border:1px dashed rgba(109,95,253,.4);border-radius:4px;color:#6d5ffd;font-weight:500;text-align:center;display:flex;column-gap:4px;padding:0 6px 0 10px;align-items:center;box-sizing:border-box;cursor:pointer;overflow:hidden}.chat-doc_upload-button-pro button .doc-name[data-v-19f371f5]{flex:1;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.chat-doc_upload-button-pro button .icon-close[data-v-19f371f5]{padding:4px;line-height:10px;box-sizing:border-box}.chat-doc_upload-button-pro button .doc-icon[data-v-19f371f5]{width:18px;height:18px;text-align:center}@media screen and (min-width: 769px){.scroll-bar-style:hover::-webkit-scrollbar-thumb,.el-dialog.chat-code-manage-modal .code-container:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px #0000001a;background:#f7f7fc}.scroll-bar-style::-webkit-scrollbar,.el-dialog.chat-code-manage-modal .code-container::-webkit-scrollbar{width:5px;height:5px}.scroll-bar-style::-webkit-scrollbar-thumb,.el-dialog.chat-code-manage-modal .code-container::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 5px #0000;background:#0000}.scroll-bar-style::-webkit-scrollbar-track,.el-dialog.chat-code-manage-modal .code-container::-webkit-scrollbar-track{border-radius:10px;background:#0000}}.el-dialog.chat-code-manage-modal{background-repeat:no-repeat;background-size:100% 100%;overflow:hidden;padding:16px}.el-dialog.chat-code-manage-modal .chat-doc-button{padding:0 23px;line-height:38px;border-radius:20px;border:1px solid #ccccd8;background-color:#fff;font-size:16px;outline:none;font-weight:400;color:#555666;cursor:pointer;transition:all .2s}.el-dialog.chat-code-manage-modal .chat-doc-button:hover{border-color:#999aaa;background:#fff;color:#555666}.el-dialog.chat-code-manage-modal .chat-doc-button.primary{color:#fff;border-color:#6d5ffd;background-color:#6d5ffd}.el-dialog.chat-code-manage-modal .chat-doc-button.primary:hover{background-color:#6d5ffd}.el-dialog.chat-code-manage-modal .chat-doc-button.disable{cursor:not-allowed;border:none;background-color:#6d5ffd80}.el-dialog.chat-code-manage-modal .chat-doc-button.disable:hover{background-color:#6d5ffd80}.el-dialog.chat-code-manage-modal .el-dialog__header{padding:0}.el-dialog.chat-code-manage-modal .el-dialog__header button{top:6px}.el-dialog.chat-code-manage-modal .el-dialog__body{padding:8px 0}.el-dialog.chat-code-manage-modal .code-radius{border-radius:8px;overflow:hidden}.el-dialog.chat-code-manage-modal .code-container{width:100%;height:416px;overflow:auto;position:relative;background:#1c1c28;display:flex;padding:16px 8px;box-sizing:border-box;font-size:12px;line-height:20px}.el-dialog.chat-code-manage-modal .code-container::-webkit-scrollbar{width:2px;height:2px}.el-dialog.chat-code-manage-modal .code-container .lines{min-width:32px}.el-dialog.chat-code-manage-modal .code-container .lines li{width:100%;text-align:center}.el-dialog.chat-code-manage-modal .code-container .code{min-width:calc(100% - 32px);min-height:100%;width:max-content;height:max-content;margin:0;display:block;outline:none;padding:0 0 0 8px;color:var(--color-text-desc);counter-reset:mycounter;white-space:pre;background:inherit;caret-color:#fc5531}.el-dialog.chat-code-manage-modal .code-container .code::-webkit-scrollbar{display:none}.el-dialog.chat-code-manage-modal .dialog-footer button:first-child{margin-right:12px}.el-dialog.chat-code-manage-modal .el-dialog__footer{display:none}.el-dialog.chat-code-manage-modal .footer-btns{display:block;padding:18px 0 0;width:100%;text-align:right}.el-dialog.chat-code-manage-modal .footer-btns .chat-doc-button{height:40px;border-radius:20px;padding:0 40px}.el-dialog.chat-code-manage-modal .footer-btns button{margin-left:16px}.el-dialog.chat-code-manage-modal .footer-btns button:first-child{margin-left:0}.chat-doc_upload-button-pro[data-v-ea9c9ae0]{position:relative;z-index:2;background-color:#fff;padding:10px;height:100%;border-radius:12px 12px 0 0}.chat-doc_upload-button-pro[data-v-ea9c9ae0]:after{content:"";position:absolute;bottom:0;left:10px;width:calc(100% - 20px);height:1px;background:#f2f2f5}.chat-doc_upload-button-pro button[data-v-ea9c9ae0]{width:max-content;max-width:50%;font-size:14px;height:24px;background-color:#6d5ffd0d;border:1px dashed rgba(109,95,253,.4);border-radius:4px;color:#6d5ffd;font-weight:500;text-align:center;display:flex;column-gap:4px;padding:0 6px 0 10px;align-items:center;box-sizing:border-box;cursor:pointer;overflow:hidden}.chat-doc_upload-button-pro button .doc-name[data-v-ea9c9ae0]{flex:1;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.chat-doc_upload-button-pro button .icon-close[data-v-ea9c9ae0]{padding:4px;line-height:10px;box-sizing:border-box}.chat-doc_upload-button-pro button .doc-icon[data-v-ea9c9ae0]{width:18px;height:18px;text-align:center}.menu-fold{position:relative}.menu-fold:hover .icon-fold{display:none}.menu-fold:hover .fold-text{display:block}.menu-fold .fold-text{display:none;position:absolute;top:50%;width:12px;right:0;font-size:10px;transform:translateY(-50%);color:#8f8fa6}.el-checkbox-group{font-size:0;line-height:0}.chat-search-feedback-popup-content[data-v-1fc11454]{padding:24px}.chat-search-feedback-popup-content-title[data-v-1fc11454]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.chat-search-feedback-popup-content-title span[data-v-1fc11454]{color:#222226;font-size:16px;font-weight:600;line-height:24px}.chat-search-feedback-popup-content-title img[data-v-1fc11454]{cursor:pointer;width:16px;height:16px}.chat-search-feedback-popup-content-checkbox[data-v-1fc11454]{margin-bottom:24px}.chat-search-feedback-popup-content-checkbox .checkbox-item[data-v-1fc11454]{display:flex;align-items:center;padding:6px 0;margin:8px 0}.chat-search-feedback-popup-content-checkbox .checkbox-item[data-v-1fc11454]:first-child{margin-top:0;padding-top:0}.chat-search-feedback-popup-content-checkbox .checkbox-item[data-v-1fc11454]:last-child{margin-bottom:0;padding-bottom:0}.chat-search-feedback-popup-content-checkbox .checkbox-item[data-v-1fc11454] .van-icon{border-radius:4px}.chat-search-feedback-popup-content-checkbox .checkbox-item .checkbox-item—label[data-v-1fc11454]{color:#222226;font-size:14px;font-weight:400;line-height:22px}.chat-search-feedback-popup-content-textarea[data-v-1fc11454]{margin-bottom:24px;width:100%;border-radius:12px;background:#f2f2f5;height:80px;box-sizing:border-box;resize:none;border:none;padding:10px;font-size:14px;font-weight:400;color:#222226}.chat-search-feedback-popup-content-textarea[data-v-1fc11454]::placeholder{color:#999aaa;font-size:14px;font-weight:400}.chat-search-feedback-popup-content button[data-v-1fc11454]{width:112px;border:none;color:#fff;padding:10px 0;height:40px;justify-content:center;align-items:center;border-radius:20px;background:#6d5ffd;transition:all .2s}.chat-search-feedback-popup-content button.disabled[data-v-1fc11454]{cursor:not-allowed;background:#6d5ffd66}.chat-search-feedback-popup-content button[data-v-1fc11454]:not(.disabled):active{background:#6d5ffdf2}.chat-search-feedback-popup-content .btn-cancel[data-v-1fc11454]{background:#fff;color:#555666;border:1px solid #CCCCD8;margin-right:12px}.chat-search-feedback-popup[data-v-50742eb8]{--van-popup-round-radius: 12px}.chat-search-feedback-popup[data-v-50742eb8] .el-dialog .el-dialog__header{display:none}.chat-search-feedback-popup[data-v-50742eb8] .el-dialog .el-dialog__body{padding:0!important}@media screen and (min-width: 769px){.scroll-bar-style[data-v-b406abd4]:hover::-webkit-scrollbar-thumb,.new-version-dialog .content ul[data-v-b406abd4]:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px #0000001a;background:#f7f7fc}.scroll-bar-style[data-v-b406abd4]::-webkit-scrollbar,.new-version-dialog .content ul[data-v-b406abd4]::-webkit-scrollbar{width:5px;height:5px}.scroll-bar-style[data-v-b406abd4]::-webkit-scrollbar-thumb,.new-version-dialog .content ul[data-v-b406abd4]::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 5px #0000;background:#0000}.scroll-bar-style[data-v-b406abd4]::-webkit-scrollbar-track,.new-version-dialog .content ul[data-v-b406abd4]::-webkit-scrollbar-track{border-radius:10px;background:#0000}}.new-version-dialog[data-v-b406abd4]{position:absolute;background:#00000026;width:100%;height:100%;top:0;left:0;z-index:99;display:flex;justify-content:center;align-items:center}.new-version-dialog .content[data-v-b406abd4]{width:640px;height:380px;transform:translateY(-10%);background:#fff url(https://cdn-static-devbit.csdn.net/ai100/chat/imgs/new-version-bg.png) right/contain no-repeat;padding:24px;box-sizing:border-box;border-radius:12px;overflow:hidden}.new-version-dialog .content h1[data-v-b406abd4]{font-size:24px;margin:0;color:var(--color-text-primary);display:flex;justify-content:space-between;align-items:flex-start;font-weight:700}.new-version-dialog .content h1 .icon-close[data-v-b406abd4]{color:#c4c4c8;font-size:24px;font-weight:400;cursor:pointer}.new-version-dialog .content h2[data-v-b406abd4]{font-size:18px;margin:40px 0 24px;font-weight:700;color:var(--color-text-content)}.new-version-dialog .content ul[data-v-b406abd4]{font-size:14px;width:260px;height:144px;overflow-y:auto;display:flex;flex-direction:column;row-gap:8px;list-style:decimal;color:var(--color-text-content)}.new-version-dialog .content ul .note-index[data-v-b406abd4]{display:inline-block;width:24px}.new-version-dialog .content .button[data-v-b406abd4]{font-size:14px;width:146px;height:42px;font-weight:400;line-height:42px;border-radius:42px;display:block;cursor:pointer;text-align:center;box-sizing:border-box;background:#6d5ffd;color:#fff;margin-top:24px}@media screen and (min-width: 769px){.scroll-bar-style[data-v-7cdd9628]:hover::-webkit-scrollbar-thumb,.directive-center[data-v-7cdd9628]:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px #0000001a;background:#f7f7fc}.scroll-bar-style[data-v-7cdd9628]::-webkit-scrollbar,.directive-center[data-v-7cdd9628]::-webkit-scrollbar{width:5px;height:5px}.scroll-bar-style[data-v-7cdd9628]::-webkit-scrollbar-thumb,.directive-center[data-v-7cdd9628]::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 5px #0000;background:#0000}.scroll-bar-style[data-v-7cdd9628]::-webkit-scrollbar-track,.directive-center[data-v-7cdd9628]::-webkit-scrollbar-track{border-radius:10px;background:#0000}}.ske[data-v-7cdd9628]{display:flex;gap:16px;height:258px}.ske .ske-item[data-v-7cdd9628]{flex:1;height:100%}.ske-2[data-v-7cdd9628]{display:grid;grid-template-columns:repeat(3,33.33%);grid-template-rows:repeat(3,33.33%);grid-row-gap:15px;grid-column-gap:15px}.ske-2 .ske-2-item[data-v-7cdd9628]{height:108px}.directive-center[data-v-7cdd9628]{overflow-x:hidden;overflow-y:auto;flex:1}.directive-center .content[data-v-7cdd9628]{position:relative;box-sizing:border-box;padding:24px;width:1084px;margin:0 auto}.directive-center .content .roles[data-v-7cdd9628]{height:306px}.directive-center .content .roles:hover .arrow[data-v-7cdd9628]{opacity:1}.directive-center .content .roles+.title[data-v-7cdd9628]{margin-top:24px}.directive-center .title[data-v-7cdd9628]{font-size:16px;font-weight:600;height:40px;line-height:40px;color:var(--color-text-primary);margin-bottom:8px;padding-left:12px;box-sizing:border-box}.directive-center .arrow[data-v-7cdd9628]{position:absolute;top:182px;z-index:99;width:32px;height:32px;cursor:pointer;color:#f2f2f5;opacity:0;transition:opacity .3s}.directive-center .arrow.l[data-v-7cdd9628]{left:8px}.directive-center .arrow.r[data-v-7cdd9628]{right:8px}.directive-center .arrow.disabled[data-v-7cdd9628]{cursor:not-allowed;color:#f2f2f566}.directive-center .scroll-wrapper[data-v-7cdd9628]{width:100%;overflow:hidden;position:relative}.directive-center .role-list[data-v-7cdd9628]{display:flex;justify-content:space-between;width:max-content;column-gap:16px}.directive-center .directive-list[data-v-7cdd9628]{display:flex;flex-wrap:wrap;gap:16px}.tools-wrap[data-v-b1813fe0]{display:flex;flex-direction:column;width:100%;margin:0 auto;height:100%;overflow:hidden}.ske-nav[data-v-b1813fe0]{height:44px;margin:24px auto 20px;max-width:1036px;width:100%}.ske[data-v-b1813fe0]{max-width:1036px;margin:0 auto;display:grid;grid-template-columns:repeat(4,24%);grid-row-gap:12px;grid-column-gap:15px;width:100%}.ske .ske-item[data-v-b1813fe0]{height:92px}@media screen and (min-width: 769px){.scroll-bar-style[data-v-0ea67edc]:hover::-webkit-scrollbar-thumb,.chat-order-list[data-v-0ea67edc]:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px #0000001a;background:#f7f7fc}.scroll-bar-style[data-v-0ea67edc]::-webkit-scrollbar,.chat-order-list[data-v-0ea67edc]::-webkit-scrollbar{width:5px;height:5px}.scroll-bar-style[data-v-0ea67edc]::-webkit-scrollbar-thumb,.chat-order-list[data-v-0ea67edc]::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 5px #0000;background:#0000}.scroll-bar-style[data-v-0ea67edc]::-webkit-scrollbar-track,.chat-order-list[data-v-0ea67edc]::-webkit-scrollbar-track{border-radius:10px;background:#0000}}.fade-enter-active[data-v-0ea67edc],.fade-leave-active[data-v-0ea67edc]{transition:opacity .5s ease}.fade-enter-from[data-v-0ea67edc],.fade-leave-to[data-v-0ea67edc]{opacity:0}.simple .chat-order[data-v-0ea67edc]{bottom:130px}.simple .chat-order-main[data-v-0ea67edc]{height:320px}.simple .chat-order-list[data-v-0ea67edc]{height:266px}.chat-order[data-v-0ea67edc]{padding:0 40px;position:absolute;left:50%;bottom:180px;transform:translate3d(-50%,0,0);width:100%;z-index:88;display:flex;justify-content:center}.chat-order-main[data-v-0ea67edc]{position:relative;width:320px;height:400px;box-shadow:0 0 16px #0000004d;background:#fff;border-radius:8px}.chat-order-title[data-v-0ea67edc]{padding:16px 16px 18px;display:flex;justify-content:space-between;align-items:center}.chat-order-list[data-v-0ea67edc]{border-radius:8px;background:#fff;overflow:auto;height:346px}.chat-order-list .order-list-item[data-v-0ea67edc]{padding-left:16px;margin-bottom:8px}.chat-order-list .order-list-item .order-time[data-v-0ea67edc]{color:#222226;font-family:PingFang SC;font-size:12px;font-style:normal;font-weight:600;line-height:16px}.chat-order-list .order-list-item .order-pay[data-v-0ea67edc]{padding:12px 0;position:relative;color:#555666;font-size:16px;font-style:normal;line-height:16px}.chat-order-list .order-list-item .order-pay[data-v-0ea67edc]:before{position:absolute;content:"";top:0;left:8px;height:100%;width:1px;background-color:#ccccd8}.chat-order-list .order-list-item .order-pay-item[data-v-0ea67edc]{padding:0 16px 16px 24px;display:flex;justify-content:space-between}.chat-order-list .order-list-item .order-pay-item[data-v-0ea67edc]:last-child{padding-bottom:0}.empty[data-v-0ea67edc]{display:flex;justify-content:center;align-items:center;height:100%}#btnChatMove{position:absolute;border:none;background-color:transparent;display:flex;align-items:center;top:50%;left:0;transform:translate(-50%,-50%);height:100px;cursor:col-resize;z-index:2003}#btnChatMove img{width:24px}.chat-room{height:100%}.chat-wrapper{--color-text-primary: #222226;--color-text-desc: #999AAA;--color-text-content: #555666;--color-menu-bg: rgba(255, 255, 255, .7);--color-menu-active-bg: #fafafc;--color-input-bg: #fff;--color-border: #f7f7fc;--color-border-message: #f0f0f5;--color-btn-bg: #fff;--color-main-bg: #fff;--color-sug-bg: #fff;--color-sug-active-bg: #f6f7fb;--color-message-bg-left: rgba(39, 124, 204, .1);--color-message-bg-right: #faf6ee;--color-mask-text: rgba(0, 0, 0, .07)}.el-checkbox{--el-checkbox-checked-icon-color: #6D5FFD;--el-checkbox-checked-input-border-color: #6D5FFD;--el-checkbox-input-border-color-hover: #6D5FFD;--el-checkbox-checked-bg-color: #fff}.el-checkbox__input.is-checked .el-checkbox__inner{border-color:var(--el-checkbox-input-border-color-hover)}.el-popper{--el-popper-border-radius: var(--el-popover-border-radius, 12px)}.el-scrollbar{border-radius:12px}:root{--el-box-shadow-light: 0px 2px 10px 0px rgba(0, 0, 0, .1);--el-color-primary: #6D5FFD}.el-button{--el-button-hover-text-color: #fff}.el-button--primary,:hover{--el-button-hover-bg-color: #6D5FFD;--el-button-hover-border-color: #6D5FFD;--el-button-active-bg-color: #6D5FFD;--el-button-active-border-color: #6D5FFD}.el-button:hover{color:var(--el-button-text-color);border-color:var(--el-border-color);background-color:inherit;outline:0}.el-button--primary:hover{color:#fff;border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button.is-round{padding-left:34px;padding-right:34px}.el-skeleton{--el-skeleton-color: rgba(0, 0, 0, .05) }@media screen and (min-width: 769px){.scroll-bar-style:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px #0000001a;background:#f7f7fc}.scroll-bar-style::-webkit-scrollbar{width:5px;height:5px}.scroll-bar-style::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 5px #0000;background:#0000}.scroll-bar-style::-webkit-scrollbar-track{border-radius:10px;background:#0000}}body{margin:0}*{box-sizing:border-box}.relative{position:relative}.flex{display:flex}.flex-1{flex:1;min-width:0;overflow:hidden}.align-item{align-items:center}.justify-between{justify-content:space-between}.flex-center{display:flex;justify-content:center;align-items:center}.flex-center .list-content{min-height:auto!important}.inline-block{display:inline-block}#chat-pro{border-radius:2px}#chat-pro .em{display:inline-block;color:#fff;border-radius:50%;width:16px;height:16px;text-align:center;line-height:16px;font-size:12px;font-style:normal!important;background:var(--color-text-content);margin-left:3px}@media screen and (min-width: 769px){#chat-pro .fixheader{height:calc(100vh - 126px)}}@media screen and (max-width: 768px){#chat-pro .fixheader{min-height:100vh}}#chat-pro [disabled=true]{cursor:not-allowed}#chat-pro .line-2{word-break:break-all;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}#chat-pro .line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media screen and (max-width: 768px){#chat-pro .m-hide{display:none!important}}@media screen and (min-width: 769px){#chat-pro .m-show{display:none!important}}@media screen and (max-width: 768px){#chat-pro .m-show{display:block!important}}#chat-pro .chat-toast-message{position:absolute;background:#00000080!important;border:none;opacity:1}#chat-pro .chat-toast-message .el-message__icon,#chat-pro .chat-toast-message .el-message__content{color:#fff}#chat-pro .el-overlay.is-message-box{position:absolute;background:#00000026}#chat-pro .el-overlay.is-message-box .el-overlay-message-box{position:absolute}#chat-pro .el-overlay.is-message-box .el-overlay-message-box .el-message-box{padding:24px;vertical-align:baseline}#chat-pro .el-overlay.is-message-box .el-overlay-message-box .el-message-box .el-message-box__header{width:100%;padding:0;font-size:18px;color:var(--color-text-primary);display:flex;align-items:center;justify-content:space-between}#chat-pro .el-overlay.is-message-box .el-overlay-message-box .el-message-box .el-message-box__header .el-message-box__headerbtn{position:static;height:20px;width:20px}#chat-pro .el-overlay.is-message-box .el-overlay-message-box .el-message-box .el-message-box__header .el-message-box__headerbtn .el-message-box__close{font-size:20px}#chat-pro .el-overlay.is-message-box .el-overlay-message-box .el-message-box .el-message-box__header .el-message-box__headerbtn .el-message-box__close:hover{color:var(--color-text-primary)}#chat-pro .el-overlay.is-message-box .el-overlay-message-box .el-message-box .el-message-box__content{font-size:14px;padding:18px 0;color:var(--color-text-primary)}#chat-pro .el-overlay.is-message-box .el-overlay-message-box .el-message-box .el-message-box__btns .el-button{width:96px;height:32px;border-radius:18px;border:1px solid #e8e8ed;color:#555666;font-size:14px;background:#fff;outline:none}#chat-pro .el-overlay.is-message-box .el-overlay-message-box .el-message-box .el-message-box__btns .el-button:hover{border:1px solid #999aaa}#chat-pro .el-overlay.is-message-box .el-overlay-message-box .el-message-box .el-message-box__btns .el-button.el-button--primary{background:#fc5531;border:none;color:#fff}#chat-pro .el-overlay.is-message-box .el-overlay-message-box .el-message-box .el-message-box__btns .el-button.el-button--primary:hover{background:#fc1944}.el-dialog{border-radius:8px;overflow:hidden}.el-dialog__headerbtn:hover .el-dialog__close{color:inherit}.flex-end{justify-content:flex-end}.el-overlay .el-dialog__header{background:#fff}:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#c_chat .chat-drawer.el-overlay{background-color:transparent}#c_chat .el-drawer__body{padding:0}#c_chat .el-drawer{overflow:initial}.chat-wrapper{height:100%;width:100%;font-size:14px;background-color:#fff}.chat-wrapper .chat-inner{position:relative;display:flex;height:100%;width:100%;background:linear-gradient(180deg,#e1e2f6cc,#f5e7fecc)}.chat-wrapper .chat-right{position:relative;padding-top:12px;padding-right:12px;display:flex;flex-direction:column;flex:1;height:100%;overflow:hidden}.chat-wrapper .chat-mask{flex:1;overflow:hidden}.chat-wrapper .chat-main{display:flex;flex-direction:column;position:relative;flex:1;background:#fff;border-radius:10px;padding-top:40px;padding-bottom:12px;height:calc(100% - 25px)}.chat-wrapper .welcome{display:flex;flex-direction:column;flex:1;max-width:1036px;padding:0 40px;margin:0 auto;width:100%}.chat-wrapper .welcome .slogan{display:flex;align-items:center;justify-content:center;flex:1;text-align:center}.chat-wrapper .welcome .slogan .c-logo{width:80px;height:80px;margin-bottom:16px;fill:none}.chat-wrapper .welcome .slogan .title{font-size:24px}.chat-wrapper .welcome .slogan .desc{width:80%;margin:0 auto;padding-top:16px}.chat-wrapper .chat-bottom{padding:4px 0;text-align:center;color:#ccccd8;font-size:12px}.chat-wrapper .chat-bottom a{color:#ccccd8;text-decoration:none;line-height:16px}.chat-wrapper .chat-bottom a:hover{color:#555666;text-decoration:underline}.chat-wrapper .btn{cursor:pointer}.chat-wrapper .c-icon{width:16px;height:16px;cursor:pointer}.chat-wrapper .actions{margin-top:10px;display:flex;align-items:center;justify-content:space-between}.chat-wrapper .menu-fold{position:absolute;top:50%;right:12px;width:14px;height:110px;transform:translateY(-50%);cursor:pointer}.chat-wrapper .menu-fold .icon-fold{position:absolute;left:6px;top:50%;transform:translateY(-50%)}.chat-btn{height:32px;font-size:14px}.vip-btn{width:100%;cursor:pointer;border-radius:16px;background:linear-gradient(141deg,#e2b1ff 5.23%,#6e60fd 97.15%);text-align:center;border-width:0px;color:#fff;padding:4px 12px}.model-wraper{position:absolute!important;left:50%;top:0;transform:translate(-50%);z-index:88}.model-wraper .model-setting{display:inline-flex;padding:6px 10px;justify-content:center;align-items:center;gap:4px;border-radius:0 0 12px 12px;background:#0000000d;cursor:pointer}.el-message{min-width:10px}.msg-left{white-space:pre-wrap}.hidden{opacity:0;display:none;width:0;height:0}.empty-text{color:#999aaa;font-size:12px}.el-popper.is-dark .el-popper__arrow:before{border:1px solid var(--el-text-color-primary)!important;background:var(--el-text-color-primary)!important}.c-scrollbar-style:hover::-webkit-scrollbar-thumb{background:#00000026;cursor:pointer}.c-scrollbar-style::-webkit-scrollbar{width:8px;height:8px}.c-scrollbar-style::-webkit-scrollbar-thumb{border-radius:10px;background:#0000;opacity:0;transition:all .2s}.c-scrollbar-style::-webkit-scrollbar-track{border-radius:10px;background:#0000}body,.chat-pro-share{background-color:#f5f6f7}.chat-pro-share{--share-padding: 24px;max-width:1080px;height:100vh;margin:0 auto}.chat-pro-share *{box-sizing:border-box}.chat-pro-share.wap{--share-padding: 16px}.chat-pro-share.wap .chat-share-view{padding-top:64px}.chat-pro-share.wap .chat-share-view__header span{font-size:15px}.chat-pro-share.wap .chat-share-view__header .primary-btn{font-size:15px;padding:0 14px;height:36px;line-height:36px}.chat-pro-share .chat-share-view{position:relative;overflow:hidden;width:100%;padding-top:72px;padding-bottom:48px;height:100%}.chat-pro-share .chat-share-view__header{position:fixed;top:0;width:100%;background-color:#f5f6f7;max-width:1080px;left:50%;transform:translate(-50%);padding:var(--share-padding) var(--share-padding) 8px;display:flex;justify-content:space-between;align-items:center}.chat-pro-share .chat-share-view__header span{color:#000;font-size:16px;font-style:normal;font-weight:600;line-height:28px}.chat-pro-share .chat-share-view__header a.primary-btn{padding:0 24px;height:40px;text-align:center;line-height:40px;flex-shrink:0;cursor:pointer;font-size:16px;border:none;font-weight:600;color:#fff;border-radius:20px;background:#6d5ffd}.chat-pro-share .chat-share-view__header a.primary-btn:hover{opacity:.9}.chat-pro-share .chat-share-view__content{background-color:#fff;border-radius:16px;margin:0 var(--share-padding);height:100%;position:relative}.chat-pro-share .chat-share-view__content_inner{height:100%;overflow-y:auto}.chat-pro-share .chat-share-view__content_inner .share-preview .share-preview-inner{padding:16px var(--share-padding)}.chat-pro-share .chat-share-view__content .slide-down-btn{cursor:pointer;position:absolute;bottom:18px;left:0;right:0;margin:auto;width:32px;height:32px;border-radius:50%;background-color:#fff;box-shadow:0 0 16px #0000004d;display:flex;align-items:center;justify-content:center;font-size:18px;color:#333}.chat-pro-share .chat-share-view__content p{margin:0;padding:0 0 4px}.chat-pro-share .chat-share-view__footer{position:fixed;bottom:0;left:0;width:100%;background-color:#f5f6f7;height:48px;line-height:48px;padding:0;text-align:center}.chat-pro-share .chat-share-view__footer span{display:inline-block;color:#ccccd8;text-align:center;font-size:12px;font-weight:400;line-height:16px}
 </style>
 <style type="text/css">
  blockquote { user-select: text; } code {user-select: text; }
 </style>
</head>
<body class="nodata" style="">
 <div id="MathJax_Message" style="display: none;">
 </div>
 <link href="https://csdnimg.cn/release/blogv2/dist/pc/css/blog_code-01256533b5.min.css" rel="stylesheet"/>
 <link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/chart-3456820cac.css" rel="stylesheet"/>
 <link href="https://g.csdnimg.cn/lib/swiper/6.0.4/css/swiper.css" rel="stylesheet"/>
 <div class="main_father clearfix d-flex justify-content-center" style="height:100%;">
  <div class="container clearfix" id="mainBox">
   <main>
    <div class="blog-content-box">
     <div class="article-header-box">
      <div class="article-header">
       <div class="article-title-box">
        <h1 class="title-article" id="articleContentId">
         巧用栈回溯，帮你快速定位问题
        </h1>
       </div>
       <div class="article-info-box">
        <div class="up-time">
         最新推荐文章于 2022-12-22 17:57:09 发布
        </div>
        <div class="article-bar-top">
         <img alt="" class="article-type-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/original.png"/>
         <div class="bar-content">
          <img alt="" class="article-vip-img-new" src="https://csdnimg.cn/release/blogv2/dist/pc/img/identityVipNew.png"/>
          <a class="follow-nickName" href="https://blog.csdn.net/qq_42260970" rel="noopener" target="_blank" title="qq_42260970">
           qq_42260970
          </a>
          <img alt="" class="article-time-img article-heard-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newCurrentTime2.png"/>
          <span class="time blog-postTime" data-time="2022-07-21 15:11:31">
           于 2022-07-21 15:11:31 发布
          </span>
          <div class="read-count-box">
           <img alt="" class="article-read-img article-heard-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/articleReadEyes2.png"/>
           <span class="read-count">
            阅读量3k
           </span>
           <a class="un-collection" data-report-click='{"mod":"popu_823","spm":"1001.2101.3001.4232","ab":"new"}' id="blog_detail_zk_collection">
            <img alt="" class="article-collect-img article-heard-img un-collect-status isdefault" src="https://csdnimg.cn/release/blogv2/dist/pc/img/tobarCollect2.png" style="display:inline-block"/>
            <img alt="" class="article-collect-img article-heard-img collect-status isactive" src="https://csdnimg.cn/release/blogv2/dist/pc/img/tobarCollectionActive2.png" style="display:none"/>
            <span class="name">
             收藏
            </span>
            <span class="get-collection" style="color: rgb(153, 154, 170);">
             6
            </span>
           </a>
           <div class="read-count-box is-like">
            <img alt="" class="article-read-img article-heard-img" id="is-like-imgactive-new" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newHeart2023Active.png" style="display:none"/>
            <img alt="" class="article-read-img article-heard-img" id="is-like-img-new" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newHeart2023Black.png" style="display:block"/>
            <span class="read-count" id="blog-digg-num">
             点赞数
                            1
            </span>
           </div>
          </div>
         </div>
        </div>
        <div class="blog-tags-box">
         <div class="tags-box artic-tag-box">
          <span class="label">
           分类专栏：
          </span>
          <a class="tag-link" href="https://blog.csdn.net/qq_42260970/category_11892180.html" rel="noopener" target="_blank">
           OneOS技术分享
          </a>
          <span class="label">
           文章标签：
          </span>
          <a class="tag-link" data-report-click='{"mod":"popu_626","spm":"1001.2101.3001.4223","strategy":"物联网","ab":"new","extra":"{\"searchword\":\"物联网\"}"}' href="https://so.csdn.net/so/search/s.do?q=%E7%89%A9%E8%81%94%E7%BD%91&amp;t=all&amp;o=vip&amp;s=&amp;l=&amp;f=&amp;viparticle=" rel="nofollow" target="_blank">
           物联网
          </a>
          <a class="tag-link" data-report-click='{"mod":"popu_626","spm":"1001.2101.3001.4223","strategy":"嵌入式硬件","ab":"new","extra":"{\"searchword\":\"嵌入式硬件\"}"}' href="https://so.csdn.net/so/search/s.do?q=%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%A1%AC%E4%BB%B6&amp;t=all&amp;o=vip&amp;s=&amp;l=&amp;f=&amp;viparticle=" rel="nofollow" target="_blank">
           嵌入式硬件
          </a>
         </div>
        </div>
        <div class="slide-content-box">
         <div class="article-copyright">
          <div class="creativecommons">
           版权声明：本文为博主原创文章，遵循
           <a href="http://creativecommons.org/licenses/by-sa/4.0/" rel="noopener" target="_blank">
            CC 4.0 BY-SA
           </a>
           版权协议，转载请附上原文出处链接和本声明。
          </div>
          <div class="article-source-link">
           本文链接：
           <a href="https://blog.csdn.net/qq_42260970/article/details/125911126" target="_blank">
            https://blog.csdn.net/qq_42260970/article/details/125911126
           </a>
          </div>
         </div>
        </div>
        <div class="operating">
         <a class="href-article-edit slide-toggle">
          版权
         </a>
        </div>
       </div>
      </div>
     </div>
     <article class="baidu_pl">
      <div class="article_content clearfix" id="article_content">
       <link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css" rel="stylesheet"/>
       <link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-044f2cf1dc.css" rel="stylesheet"/>
       <div class="htmledit_views" deep="6" id="content_views">
        <p>
         在系统运行或调试过程中，程序总是出现一些出乎意料的现象（例如程序异常或者某个任务运行不是预料的）。为了帮助用户快速定位问题，减少出现问题难以定位的情况，操作系统中的栈
         <a class="hl hl-1" data-pretit="回溯" data-report-click='{"spm":"1001.2101.3001.7020","dest":"https://so.csdn.net/so/search?q=%E5%9B%9E%E6%BA%AF&amp;spm=1001.2101.3001.7020","extra":"{\"searchword\":\"回溯\"}"}' data-tit="回溯" href="https://so.csdn.net/so/search?q=%E5%9B%9E%E6%BA%AF&amp;spm=1001.2101.3001.7020" target="_blank">
          回溯
         </a>
         功能就显得十分重要。
        </p>
        <p>
         栈回溯到底是什么？又该如何使用呢？下面让我们一起来详细了解一下吧！（学会了这一招，以后遇到难以定位的问题还怕啥？）
        </p>
        <h2 style="margin-left:.0001pt;text-align:justify;">
         <a name="t0">
         </a>
         <strong>
          <strong>
           一、栈及栈回溯
          </strong>
         </strong>
        </h2>
        <h3 style="margin-left:.0001pt;text-align:justify;">
         <a name="t1">
         </a>
         1.1 栈的作用
        </h3>
        <p style="margin-left:.0001pt;text-align:justify;">
         1）
         <a class="hl hl-1" data-pretit="传递函数" data-report-click='{"spm":"1001.2101.3001.7020","dest":"https://so.csdn.net/so/search?q=%E4%BC%A0%E9%80%92%E5%87%BD%E6%95%B0&amp;spm=1001.2101.3001.7020","extra":"{\"searchword\":\"传递函数\"}"}' data-tit="传递函数" href="https://so.csdn.net/so/search?q=%E4%BC%A0%E9%80%92%E5%87%BD%E6%95%B0&amp;spm=1001.2101.3001.7020" target="_blank">
          传递函数
         </a>
         参数:为了速度快，使用CPU的寄存器传递参数。这会碰到一个问题，CPU寄存器的数量是有限的，当函数参数超过约定的CPU寄存器个数时，则使用栈存储剩余的参数，来实现传递函数参数。
        </p>
        <p style="margin-left:.0001pt;text-align:justify;">
         2）保存局部变量:函数里面必然要使用到局部变量，而不能总是用全局变量。
        </p>
        <p style="margin-left:.0001pt;text-align:justify;">
         3）函数调用时的上下文:为了保证函数调用后能够正确返回，需要保存函数调用时的寄存器和返回地址。
        </p>
        <p style="margin-left:.0001pt;text-align:justify;">
         4）任务切换时的上下文:在发生任务切换时，需要保存任务上下文，保证切换回任务时程序正常运行。
        </p>
        <p style="margin-left:.0001pt;text-align:justify;">
         5）发生中断时的上下文：发生中断时，为了保证正确返回，需要保存当时的上下文。
        </p>
        <h3 style="margin-left:.0001pt;text-align:justify;">
         <a name="t2">
         </a>
         1.2 栈回溯的基本功能
        </h3>
        <p style="margin-left:.0001pt;text-align:justify;">
         从栈的作用可以看出栈中保存着函数的返回地址，我们可以通过编译程序的铁定规则或者程序的特殊指令识别出这些返回地址。再从这些返回地址来确定函数的调用关系、调用顺序。我们通过栈回溯可以查看当前的上下文。栈回溯主要适用于以下场景：
        </p>
        <p style="margin-left:.0001pt;text-align:justify;">
         1）在异常、中断和任务等上下文查看任务栈回溯；
        </p>
        <p style="margin-left:.0001pt;text-align:justify;">
         2）如果异常发生在中断上下文还可以对中断栈回溯；
        </p>
        <p style="margin-left:.0001pt;text-align:justify;">
         3）对于运行任务不仅支持对其他任务进行栈回溯还可以对自身进行栈回溯；
        </p>
        <p style="margin-left:.0001pt;text-align:justify;">
         4）在中断上下文查看中断栈回溯。
        </p>
        <h3 style="margin-left:.0001pt;text-align:justify;">
         <a name="t3">
         </a>
         1.3 支持架构
        </h3>
        <p style="margin-left:.0001pt;text-align:justify;">
         OneOS目前支持
         <a class="hl hl-1" data-pretit="arm" data-report-click='{"spm":"1001.2101.3001.7020","dest":"https://so.csdn.net/so/search?q=ARM&amp;spm=1001.2101.3001.7020","extra":"{\"searchword\":\"ARM\"}"}' data-report-view='{"spm":"1001.2101.3001.7020","dest":"https://so.csdn.net/so/search?q=ARM&amp;spm=1001.2101.3001.7020","extra":"{\"searchword\":\"ARM\"}"}' data-tit="ARM" href="https://so.csdn.net/so/search?q=ARM&amp;spm=1001.2101.3001.7020" target="_blank">
          ARM
         </a>
         v6m，v7m，v8m三种架构的所有单板和RISC-V部分单板。
        </p>
        <h2 style="text-align:justify;">
         <a name="t4">
         </a>
         <strong>
          <strong>
           二、使用方法
          </strong>
         </strong>
        </h2>
        <h3 style="margin-left:.0001pt;text-align:justify;">
         <a name="t5">
         </a>
         2.1 使用方法1-函数调用
        </h3>
        <p style="margin-left:.0001pt;text-align:justify;">
         OneOS主要提供以下接口供应用程序使用:
        </p>
        <div class="table-box">
         <table border="1" cellspacing="0" style="margin-left:-1.8pt;width:272pt;">
          <tbody>
           <tr>
            <td style="background-color:#5b9bd5;width:132.15pt;">
             <p style="margin-left:0;text-align:left;">
              <strong>
               <span style="color:#ffffff;">
                <strong>
                 接口
                </strong>
               </span>
              </strong>
             </p>
            </td>
            <td style="background-color:#5b9bd5;width:139.85pt;">
             <p style="margin-left:0;text-align:left;">
              <strong>
               <span style="color:#ffffff;">
                <strong>
                 说明
                </strong>
               </span>
              </strong>
             </p>
            </td>
           </tr>
           <tr>
            <td style="background-color:#eaeff7;width:132.15pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               task_stack_show
              </span>
             </p>
            </td>
            <td style="background-color:#eaeff7;width:139.85pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               显示任务栈回溯信息
              </span>
             </p>
            </td>
           </tr>
           <tr>
            <td style="background-color:#ffffff;width:132.15pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               interrupt_stack_show
              </span>
             </p>
            </td>
            <td style="background-color:#ffffff;width:139.85pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               显示中断栈回溯信息
              </span>
             </p>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
        <p>
         <strong>
          <strong>
           task_stack_show
          </strong>
         </strong>
        </p>
        <p style="margin-left:.0001pt;text-align:justify;">
         该函数用于显示任务栈回溯信息，由于异常上下文和其他上下文压栈的内容不一样，因此添加了一个context参数。函数原型如下：
        </p>
        <pre class="set-code-show" data-index="0" name="code"><code class="hljs language-cpp"><span class="hljs-function"><span class="hljs-type">os_err_t</span> <span class="hljs-title">task_stack_show</span><span class="hljs-params">(<span class="hljs-type">os_task_t</span> *task, <span class="hljs-type">os_uint32_t</span> context)</span></span>;</code><div class="hljs-button {2}" data-title="复制" onclick="hljs.copyCode(event)"></div></pre>
        <p style="margin-left:.0001pt;text-align:justify;">
         <strong>
          <strong>
           interrupt_stack_show
          </strong>
         </strong>
        </p>
        <p style="margin-left:.0001pt;text-align:justify;">
         该函数用于显示中断栈回溯信息，原型如下：
        </p>
        <pre class="set-code-show" data-index="1" name="code"><code class="hljs language-cpp"><span class="hljs-function"><span class="hljs-type">os_err_t</span> <span class="hljs-title">interrupt_stack_show</span><span class="hljs-params">(<span class="hljs-type">void</span>)</span></span>;</code><div class="hljs-button {2}" data-title="复制" onclick="hljs.copyCode(event)"></div></pre>
        <div class="table-box">
         <table border="1" cellspacing="0" style="margin-left:-1.8pt;width:322.7pt;">
          <tbody>
           <tr>
            <td style="background-color:#5b9bd5;width:92.35pt;">
             <p style="margin-left:0;text-align:left;">
              <strong>
               <span style="color:#ffffff;">
                <strong>
                 参数
                </strong>
               </span>
              </strong>
             </p>
            </td>
            <td style="background-color:#5b9bd5;width:230.35pt;">
             <p style="margin-left:0;text-align:left;">
              <strong>
               <span style="color:#ffffff;">
                <strong>
                 说明
                </strong>
               </span>
              </strong>
             </p>
            </td>
           </tr>
           <tr>
            <td style="background-color:#eaeff7;width:92.35pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               无
              </span>
             </p>
            </td>
            <td style="background-color:#eaeff7;width:230.35pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               无
              </span>
             </p>
            </td>
           </tr>
           <tr>
            <td style="background-color:#5b9bd5;width:92.35pt;">
             <p style="margin-left:0;text-align:left;">
              <strong>
               <span style="color:#ffffff;">
                <strong>
                 返回
                </strong>
               </span>
              </strong>
             </p>
            </td>
            <td style="background-color:#5b9bd5;width:230.35pt;">
             <p style="margin-left:0;text-align:left;">
              <strong>
               <span style="color:#ffffff;">
                <strong>
                 说明
                </strong>
               </span>
              </strong>
             </p>
            </td>
           </tr>
           <tr>
            <td style="background-color:#eaeff7;width:92.35pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               OS_ERROR
              </span>
             </p>
            </td>
            <td style="background-color:#eaeff7;width:230.35pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               任务名称为空,系统中无此任务下返回失败
              </span>
             </p>
            </td>
           </tr>
           <tr>
            <td style="background-color:#ffffff;width:92.35pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               OS_EOK
              </span>
             </p>
            </td>
            <td style="background-color:#ffffff;width:230.35pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               成功
              </span>
             </p>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
        <h3>
         <a name="t6">
         </a>
         2.2使用方法2-shell命令
        </h3>
        <div class="table-box">
         <table border="1" cellspacing="0" style="margin-left:-1.8pt;width:322.15pt;">
          <tbody>
           <tr>
            <td style="background-color:#5b9bd5;width:103.6pt;">
             <p style="margin-left:0;text-align:left;">
              <strong>
               <span style="color:#ffffff;">
                <strong>
                 命令
                </strong>
               </span>
              </strong>
             </p>
            </td>
            <td style="background-color:#5b9bd5;width:218.55pt;">
             <p style="margin-left:0;text-align:left;">
              <strong>
               <span style="color:#ffffff;">
                <strong>
                 说明
                </strong>
               </span>
              </strong>
             </p>
            </td>
           </tr>
           <tr>
            <td style="background-color:#eaeff7;width:103.6pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               show_task_stack
              </span>
             </p>
            </td>
            <td style="background-color:#eaeff7;width:218.55pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               显示任务栈回溯信息
              </span>
             </p>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
        <p style="margin-left:.0001pt;text-align:justify;">
         <strong>
          <strong>
           show_task_stack
          </strong>
         </strong>
        </p>
        <p style="margin-left:.0001pt;text-align:justify;">
         该命令支持通过任务名称或者任务句柄两种方式显示任务栈回溯信息，相对应的函数原型如下:
        </p>
        <pre class="set-code-show" data-index="2" name="code"><code class="hljs language-cpp"><span class="hljs-function"><span class="hljs-type">static</span> <span class="hljs-type">os_err_t</span> <span class="hljs-title">sh_task_stack_show</span><span class="hljs-params">(<span class="hljs-type">os_int32_t</span> argc, <span class="hljs-type">char</span> **argv)</span></span>;</code><div class="hljs-button {2}" data-title="复制" onclick="hljs.copyCode(event)"></div></pre>
        <div class="table-box">
         <table border="1" cellspacing="0" style="margin-left:-1.8pt;width:384pt;">
          <tbody>
           <tr>
            <td style="background-color:#5b9bd5;width:89.65pt;">
             <p style="margin-left:0;text-align:left;">
              <strong>
               <span style="color:#ffffff;">
                <strong>
                 参数
                </strong>
               </span>
              </strong>
             </p>
            </td>
            <td style="background-color:#5b9bd5;width:294.35pt;">
             <p style="margin-left:0;text-align:left;">
              <strong>
               <span style="color:#ffffff;">
                <strong>
                 说明
                </strong>
               </span>
              </strong>
             </p>
            </td>
           </tr>
           <tr>
            <td style="background-color:#eaeff7;width:89.65pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               argc
              </span>
             </p>
            </td>
            <td style="background-color:#eaeff7;width:294.35pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               参数个数
              </span>
             </p>
            </td>
           </tr>
           <tr>
            <td style="background-color:#ffffff;width:89.65pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               argv
              </span>
             </p>
            </td>
            <td style="background-color:#ffffff;width:294.35pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               参数值，命令格式：show_task_stack task_name/show_task_stack tcb
              </span>
             </p>
            </td>
           </tr>
           <tr>
            <td style="background-color:#5b9bd5;width:89.65pt;">
             <p style="margin-left:0;text-align:left;">
              <strong>
               <span style="color:#ffffff;">
                <strong>
                 返回
                </strong>
               </span>
              </strong>
             </p>
            </td>
            <td style="background-color:#5b9bd5;width:294.35pt;">
             <p style="margin-left:0;text-align:left;">
              <strong>
               <span style="color:#ffffff;">
                <strong>
                 说明
                </strong>
               </span>
              </strong>
             </p>
            </td>
           </tr>
           <tr>
            <td style="background-color:#eaeff7;width:89.65pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               OS_ERROR
              </span>
             </p>
            </td>
            <td style="background-color:#eaeff7;width:294.35pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               任务名称为空,任务名称对应的任务为系统任务或任务句柄在系统中未找到
              </span>
             </p>
            </td>
           </tr>
           <tr>
            <td style="background-color:#ffffff;width:89.65pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               OS_EOK
              </span>
             </p>
            </td>
            <td style="background-color:#ffffff;width:294.35pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               成功
              </span>
             </p>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
        <h3 style="margin-left:.0001pt;text-align:justify;">
         <a name="t7">
         </a>
         2.3配置选项
        </h3>
        <p style="margin-left:.0001pt;text-align:justify;">
         OneOS在使用栈回溯时提供了功能和裁剪的配置，具体配置如下图所示:
        </p>
        <pre class="set-code-show" data-index="3" name="code"><code class="hljs language-cobol"><ol class="hljs-ln" style="width:100%"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">(<span class="hljs-keyword">Top</span>) → Components→ Diagnose</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">                                                         OneOS <span class="hljs-keyword">Configuration</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">[<span class="hljs-operator">*</span>] Stack back trace enable</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">[ ]     back trace dump stack</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">(<span class="hljs-number">256</span>)   The stack <span class="hljs-keyword">overflow</span> back trace <span class="hljs-keyword">size</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">(<span class="hljs-number">10</span>)    The stack back trace max depth</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">[ ] Monitor CPU <span class="hljs-keyword">usage</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">[ ] Enable wireshark dump</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    eCoreDump  ---<span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    Memory Monitor  ---<span class="hljs-operator">&gt;</span></div></div></li></ol></code><div class="hljs-button {2}" data-title="复制" onclick="hljs.copyCode(event)"></div></pre>
        <div class="table-box">
         <table border="1" cellspacing="0" style="margin-left:-1.8pt;width:384pt;">
          <tbody>
           <tr>
            <td style="background-color:#5b9bd5;width:183.6pt;">
             <p style="margin-left:0;text-align:left;">
              <strong>
               <span style="color:#ffffff;">
                <strong>
                 配置项
                </strong>
               </span>
              </strong>
             </p>
            </td>
            <td style="background-color:#5b9bd5;width:200.4pt;">
             <p style="margin-left:0;text-align:left;">
              <strong>
               <span style="color:#ffffff;">
                <strong>
                 说明
                </strong>
               </span>
              </strong>
             </p>
            </td>
           </tr>
           <tr>
            <td style="background-color:#eaeff7;width:183.6pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               Stack back trace enable
              </span>
             </p>
            </td>
            <td style="background-color:#eaeff7;width:200.4pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               使能栈回溯功能
              </span>
             </p>
            </td>
           </tr>
           <tr>
            <td style="background-color:#ffffff;width:183.6pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               back trace dump stack
              </span>
             </p>
            </td>
            <td style="background-color:#ffffff;width:200.4pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               栈回溯显示对应栈的所有内容
              </span>
             </p>
            </td>
           </tr>
           <tr>
            <td style="background-color:#eaeff7;width:183.6pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               The stack overflow back trace size
              </span>
             </p>
            </td>
            <td style="background-color:#eaeff7;width:200.4pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               栈溢出的情况下额外栈回溯的空间
              </span>
             </p>
            </td>
           </tr>
           <tr>
            <td style="background-color:#ffffff;width:183.6pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               The stack back trace max depth
              </span>
             </p>
            </td>
            <td style="background-color:#ffffff;width:200.4pt;">
             <p style="margin-left:0;text-align:left;">
              <span style="color:#000000;">
               栈回溯最大深度
              </span>
             </p>
            </td>
           </tr>
          </tbody>
         </table>
        </div>
        <h2 style="text-align:justify;">
         <a name="t8">
         </a>
         <strong>
          <strong>
           三、实际使用场景示例
          </strong>
         </strong>
        </h2>
        <h3 style="margin-left:.0001pt;text-align:justify;">
         <a name="t9">
         </a>
         3.1 在shell中使用
        </h3>
        <p style="margin-left:.0001pt;text-align:justify;">
         我们可以shell中使用show_task_stack获取一个任务的栈回溯。show_task_stack命令带一个参数，可以是任务名称，也可以是任务句柄。
        </p>
        <pre class="set-code-show" data-index="4" name="code"><code class="hljs language-cobol"><ol class="hljs-ln" style="width:982px"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">STARTUP: OneOS <span class="hljs-keyword">start</span>, version:OneOS-V<span class="hljs-number">2.3.0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">sh<span class="hljs-operator">&gt;</span>show_task</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">Task             Task ID       Priority  State                 Stack <span class="hljs-keyword">top</span>   Stack addr  Stack <span class="hljs-keyword">size</span>  Max used  <span class="hljs-keyword">Left</span> tick</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">---------------  ------------  --------  --------------------  ----------  ----------  ----------  --------  ---------</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">timer            <span class="hljs-number">0</span>x<span class="hljs-number">20001700</span>    <span class="hljs-number">0</span>         Suspend               <span class="hljs-number">0</span>x<span class="hljs-number">20001684</span>  <span class="hljs-number">0</span>x<span class="hljs-number">20001500</span>  <span class="hljs-number">512</span>          <span class="hljs-number">24</span>%      <span class="hljs-number">10</span>       </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">recycle          <span class="hljs-number">0</span>x<span class="hljs-number">20001488</span>    <span class="hljs-number">0</span>         Suspend               <span class="hljs-number">0</span>x<span class="hljs-number">20001434</span>  <span class="hljs-number">0</span>x<span class="hljs-number">20001288</span>  <span class="hljs-number">512</span>          <span class="hljs-number">16</span>%      <span class="hljs-number">10</span>       </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">idle             <span class="hljs-number">0</span>x<span class="hljs-number">200010</span>e<span class="hljs-number">8</span>    <span class="hljs-number">31</span>        Ready                 <span class="hljs-number">0</span>x<span class="hljs-number">200010</span>a<span class="hljs-number">4</span>  <span class="hljs-number">0</span>x<span class="hljs-number">20000</span>ce<span class="hljs-number">8</span>  <span class="hljs-number">1024</span>          <span class="hljs-number">6</span>%      <span class="hljs-number">8</span>        </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">main             <span class="hljs-number">0</span>x<span class="hljs-number">20003</span>d<span class="hljs-number">04</span>    <span class="hljs-number">0</span>         Sleep                 <span class="hljs-number">0</span>x<span class="hljs-number">20003</span>c<span class="hljs-number">84</span>  <span class="hljs-number">0</span>x<span class="hljs-number">200034</span>f<span class="hljs-number">8</span>  <span class="hljs-number">2048</span>         <span class="hljs-number">22</span>%      <span class="hljs-number">5</span>        </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">sys_work         <span class="hljs-number">0</span>x<span class="hljs-number">20002114</span>    <span class="hljs-number">8</span>         <span class="hljs-keyword">Block</span>                 <span class="hljs-number">0</span>x<span class="hljs-number">200020</span>a<span class="hljs-number">4</span>  <span class="hljs-number">0</span>x<span class="hljs-number">20001908</span>  <span class="hljs-number">2048</span>          <span class="hljs-number">4</span>%      <span class="hljs-number">10</span>       </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">tshell           <span class="hljs-number">0</span>x<span class="hljs-number">200029</span>c<span class="hljs-number">0</span>    <span class="hljs-number">20</span>        Running               <span class="hljs-number">0</span>x<span class="hljs-number">200028</span>c<span class="hljs-number">8</span>  <span class="hljs-number">0</span>x<span class="hljs-number">200021</span>c<span class="hljs-number">0</span>  <span class="hljs-number">2048</span>         <span class="hljs-number">26</span>%      <span class="hljs-number">3</span>        </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">user             <span class="hljs-number">0</span>x<span class="hljs-number">20004</span>bac    <span class="hljs-number">3</span>         Sleep                 <span class="hljs-number">0</span>x<span class="hljs-number">20004</span>b<span class="hljs-number">4</span>c  <span class="hljs-number">0</span>x<span class="hljs-number">200049</span>a<span class="hljs-number">0</span>  <span class="hljs-number">512</span>          <span class="hljs-number">16</span>%      <span class="hljs-number">10</span>       </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">sh<span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">sh<span class="hljs-operator">&gt;</span>show_task_stack user</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span>Task user stack trace<span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span><span class="hljs-operator">=</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="15"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">0</span> : <span class="hljs-number">0</span>x<span class="hljs-number">00000000</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="16"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">1</span> : <span class="hljs-number">0</span>x<span class="hljs-number">20000234</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="17"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">2</span> : <span class="hljs-number">0</span>x<span class="hljs-number">20000</span>cb<span class="hljs-number">0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="18"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">3</span> : <span class="hljs-number">0</span>x<span class="hljs-number">00000000</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="19"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">4</span> : <span class="hljs-number">0</span>x<span class="hljs-number">20004</span>bac</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="20"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">5</span> : <span class="hljs-number">0</span>x<span class="hljs-number">00000064</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="21"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">6</span> : <span class="hljs-number">0</span>x<span class="hljs-number">00000000</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="22"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">7</span> : <span class="hljs-number">0</span>xdeadbeef</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="23"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">8</span> : <span class="hljs-number">0</span>xdeadbeef</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="24"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">9</span> : <span class="hljs-number">0</span>xdeadbeef</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="25"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">10</span>: <span class="hljs-number">0</span>xdeadbeef</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="26"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">11</span>: <span class="hljs-number">0</span>xdeadbeef</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="27"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">12</span>: <span class="hljs-number">0</span>x<span class="hljs-number">00000000</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="28"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">LR : <span class="hljs-number">0</span>x<span class="hljs-number">08011505</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="29"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">PC : <span class="hljs-number">0</span>x<span class="hljs-number">08011504</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="30"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">PSR: <span class="hljs-number">0</span>x<span class="hljs-number">61000000</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="31"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">You can <span class="hljs-keyword">use</span> follow command <span class="hljs-keyword">for</span> backtrace:</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="32"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">addr<span class="hljs-number">2</span><span class="hljs-keyword">line</span> -e <span class="hljs-operator">*</span>.axf<span class="hljs-operator">/</span><span class="hljs-operator">*</span>.elf -a -f <span class="hljs-number">0</span>x<span class="hljs-number">08011504</span> <span class="hljs-number">0</span>x<span class="hljs-number">080184</span>a<span class="hljs-number">8</span> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="33"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">sh<span class="hljs-operator">&gt;</span></div></div></li></ol></code><div class="hljs-button {2}" data-title="复制" onclick="hljs.copyCode(event)"></div></pre>
        <h3 style="margin-left:.0001pt;text-align:justify;">
         <a name="t10">
         </a>
         3.2 在应用程序中使用
        </h3>
        <p style="margin-left:.0001pt;text-align:justify;">
         从上面API接口描述中看出，我们可以直接调用函数查看任务栈回溯，具体直接看上面API描述。
        </p>
        <h3 style="margin-left:.0001pt;text-align:justify;">
         <a name="t11">
         </a>
         3.3程序异常后自动触发
        </h3>
        <p style="margin-left:.0001pt;text-align:justify;">
         下面代码前面的数据代表代码行号，fun_b()故意调用一个空函数，在执行空函数时程序出现异常。
        </p>
        <pre class="set-code-show" data-index="5" name="code"><code class="hljs language-cpp"><ol class="hljs-ln" style="width:100%"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-meta">#<span class="hljs-keyword">include</span> <span class="hljs-string">&lt;board.h&gt;</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-meta">#<span class="hljs-keyword">include</span> <span class="hljs-string">&lt;os_task.h&gt;</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-function"><span class="hljs-type">static</span> <span class="hljs-type">void</span> <span class="hljs-title">user_task</span><span class="hljs-params">(<span class="hljs-type">void</span> *parameter)</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> {</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">     <span class="hljs-keyword">while</span> (<span class="hljs-number">1</span>)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">     {</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-built_in">os_task_tsleep</span>(<span class="hljs-number">100</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">     }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-function"><span class="hljs-type">void</span> <span class="hljs-title">fun_b</span><span class="hljs-params">(<span class="hljs-type">void</span>)</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> {</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">     ((<span class="hljs-built_in">void</span> (*)())<span class="hljs-number">0</span>)();</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="15"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="16"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="17"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-function"><span class="hljs-type">void</span> <span class="hljs-title">fun_a</span><span class="hljs-params">(<span class="hljs-type">void</span>)</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="18"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> {</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="19"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">     <span class="hljs-built_in">fun_b</span>();</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="20"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="21"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="22"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-function"><span class="hljs-type">int</span> <span class="hljs-title">main</span><span class="hljs-params">(<span class="hljs-type">void</span>)</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="23"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> {</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="24"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">     <span class="hljs-type">os_task_t</span> *task;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="25"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="26"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">     task = <span class="hljs-built_in">os_task_create</span>(<span class="hljs-string">"user"</span>, user_task, <span class="hljs-literal">NULL</span>, <span class="hljs-number">512</span>, <span class="hljs-number">3</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="27"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">     <span class="hljs-built_in">OS_ASSERT</span>(task);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="28"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">     <span class="hljs-built_in">os_task_startup</span>(task);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="29"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="30"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">     <span class="hljs-built_in">os_task_tsleep</span>(<span class="hljs-number">1000</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="31"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">     <span class="hljs-built_in">fun_a</span>();</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="32"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">     <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="33"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> }</div></div></li></ol></code><div class="hljs-button {2}" data-title="复制" onclick="hljs.copyCode(event)"></div></pre>
        <p style="margin-left:.0001pt;text-align:justify;">
         当程序执行到fun_b()后，在使能栈回溯的情况下程序会自动打印栈回溯信息:
        </p>
        <pre class="set-code-show" data-index="6" name="code"><code class="hljs language-cobol"><ol class="hljs-ln" style="width:736px"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">STARTUP: OneOS <span class="hljs-keyword">start</span>, version:OneOS-V<span class="hljs-number">2.3.0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">sh<span class="hljs-operator">&gt;</span>Hard fault <span class="hljs-keyword">in</span> task: main</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">0</span> : <span class="hljs-number">0</span>x<span class="hljs-number">00000000</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">1</span> : <span class="hljs-number">0</span>x<span class="hljs-number">20000234</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">2</span> : <span class="hljs-number">0</span>x<span class="hljs-number">20000</span>cd<span class="hljs-number">0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">3</span> : <span class="hljs-number">0</span>x<span class="hljs-number">08006</span>f<span class="hljs-number">65</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">4</span> : <span class="hljs-number">0</span>x<span class="hljs-number">20004</span>bac</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">5</span> : <span class="hljs-number">0</span>x<span class="hljs-number">00000000</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">6</span> : <span class="hljs-number">0</span>xdeadbeef</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">7</span> : <span class="hljs-number">0</span>xdeadbeef</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">8</span> : <span class="hljs-number">0</span>xdeadbeef</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">9</span> : <span class="hljs-number">0</span>xdeadbeef</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">10</span>: <span class="hljs-number">0</span>xdeadbeef</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">11</span>: <span class="hljs-number">0</span>xdeadbeef</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="15"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">R<span class="hljs-number">12</span>: <span class="hljs-number">0</span>x<span class="hljs-number">00000000</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="16"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">LR : <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>a<span class="hljs-number">8</span>d<span class="hljs-number">3</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="17"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">PC : <span class="hljs-number">0</span>x<span class="hljs-number">00000000</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="18"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">PSR: <span class="hljs-number">0</span>x<span class="hljs-number">60000000</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="19"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-keyword">usage</span> fault:</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="20"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">SCB_CFSR_UFSR: <span class="hljs-number">0</span>x<span class="hljs-number">02</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="21"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">INVSTATE</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="22"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">You can user follow command <span class="hljs-keyword">for</span> backtrace:</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="23"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">addr<span class="hljs-number">2</span><span class="hljs-keyword">line</span> -e <span class="hljs-operator">*</span>.axf<span class="hljs-operator">/</span><span class="hljs-operator">*</span>.elf -a -f <span class="hljs-number">0</span>x<span class="hljs-number">00000000</span> <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>a<span class="hljs-number">8</span>d<span class="hljs-number">2</span> <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>a<span class="hljs-number">8</span>ca <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>b<span class="hljs-number">2</span>dc <span class="hljs-number">0</span>x<span class="hljs-number">0800699</span>c </div></div></li></ol></code><div class="hljs-button {2}" data-title="复制" onclick="hljs.copyCode(event)"></div></pre>
        <h2 style="margin-left:.0001pt;text-align:justify;">
         <a name="t12">
         </a>
         <strong>
          <strong>
           四、解析栈回溯信息
          </strong>
         </strong>
        </h2>
        <p style="margin-left:.0001pt;text-align:justify;">
         <strong>
          <strong>
           首先需要说明一下，栈中保存的是函数的返回地址，栈回溯打印出来的地址与执行代码向后偏移了一条指令。
          </strong>
         </strong>
         操作系统打印出栈回溯信息后，我们可以结合编译器相关工具进行解析，下面以异常触发的栈回溯（addr2line -e .axf/.elf -a -f 0x00000000 0x0800a8d2 0x0800a8ca 0x0800b2dc 0x0800699c）举例说明如何解析栈回溯信息。
        </p>
        <h3 style="margin-left:.0001pt;text-align:justify;">
         <a name="t13">
         </a>
         4.1通过addr2line解析栈回溯信息
        </h3>
        <p style="margin-left:.0001pt;text-align:justify;">
         使用cmd切换到OneOS-Cube的addr2line工具的路径下,同时把工程生成的axf文件或elf文件拷贝到此路径(此处以axf文件为示例)，执行arm-none-eabi-addr2line -e *.axf -a -f 0x00000000 0x0800a8d2 0x0800a8ca 0x0800b2dc 0x0800699c
        </p>
        <pre class="set-code-show" data-index="7" name="code"><code class="hljs language-cobol"><ol class="hljs-ln" style="width:1252px"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">D:\<span class="hljs-keyword">Program</span> Files\OneOS-Cube-V<span class="hljs-number">1.3.7</span>\components\mingw\bin<span class="hljs-operator">&gt;</span>arm-none-eabi-addr<span class="hljs-number">2</span><span class="hljs-keyword">line</span> -e oneos.axf -a -f <span class="hljs-number">0</span>x<span class="hljs-number">00000000</span> <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>a<span class="hljs-number">8</span>d<span class="hljs-number">2</span> <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>a<span class="hljs-number">8</span>ca <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>b<span class="hljs-number">2</span>dc <span class="hljs-number">0</span>x<span class="hljs-number">0800699</span>c</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-number">0</span>x<span class="hljs-number">00000000</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">??</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">??:<span class="hljs-number">0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-number">0</span>x<span class="hljs-number">0800</span>a<span class="hljs-number">8</span>d<span class="hljs-number">2</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">fun_b</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">C:\OneOS\templates\stm<span class="hljs-number">32</span>f<span class="hljs-number">411</span>-ret<span class="hljs-number">6</span>-nucleo<span class="hljs-operator">/</span>application\main.c:<span class="hljs-number">38</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-number">0</span>x<span class="hljs-number">0800</span>a<span class="hljs-number">8</span>ca</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">fun_a</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">C:\OneOS\templates\stm<span class="hljs-number">32</span>f<span class="hljs-number">411</span>-ret<span class="hljs-number">6</span>-nucleo<span class="hljs-operator">/</span>application\main.c:<span class="hljs-number">43</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-number">0</span>x<span class="hljs-number">0800</span>b<span class="hljs-number">2</span>dc</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">main</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">C:\OneOS\templates\stm<span class="hljs-number">32</span>f<span class="hljs-number">411</span>-ret<span class="hljs-number">6</span>-nucleo<span class="hljs-operator">/</span>application\main.c:<span class="hljs-number">55</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-number">0</span>x<span class="hljs-number">0800699</span>c</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="15"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">_k_main_task_entry</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="16"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">C:\OneOS\templates\stm<span class="hljs-number">32</span>f<span class="hljs-number">411</span>-ret<span class="hljs-number">6</span>-nucleo<span class="hljs-operator">/</span>..\..\kernel\<span class="hljs-keyword">source</span>\<span class="hljs-operator">/</span>os_startup.c:<span class="hljs-number">190</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="17"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="18"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">D:\<span class="hljs-keyword">Program</span> Files\OneOS-Cube-V<span class="hljs-number">1.3.7</span>\components\mingw\bin<span class="hljs-operator">&gt;</span></div></div></li></ol></code><div class="hljs-button {2}" data-title="复制" onclick="hljs.copyCode(event)"></div></pre>
        <p style="margin-left:.0001pt;text-align:justify;">
         解析后得到的结果是os_startup.c:190-&gt;main.c:55-&gt;main.c:43-&gt;main.c:38，这看起来不是我们实际的执行代码逻辑。
         <strong>
          <strong>
           这就用到前面描述的栈里面存的返回地址我们需要向前看
          </strong>
         </strong>
         ，这样得到os_startup.c:189-&gt;main.c:54(main)-&gt;main.c:42(fun_a)-&gt;main.c:37(fun_b)
        </p>
        <h3 style="margin-left:.0001pt;text-align:justify;">
         <a name="t14">
         </a>
         4.2 MDK开发工具使用formelf解析栈回溯信息
        </h3>
        <p style="margin-left:.0001pt;text-align:justify;">
         使用cmd切换到MDK的formelf工具的路径下,同时把工程生成的axf文件或elf文件拷贝到此路径(此处以axf文件为示例)，执行fromelf --text -a -c --output=oneos.txt oneos.axf生成oneos.txt（反汇编文件）, 从oneos.txt中查看函数地址(0x0800a8d2 0x0800a8ca 0x0800b2dc 0x0800699c)前一条汇编指令，从而得到我们异常的现场(0x08006998_k_main_task_entry()-&gt;0x0800b2d8($Super$$main)-&gt;0x0800a8c6(fun_a)-&gt;0x0800a8d0(fun_b))。
        </p>
        <pre class="set-code-show" data-index="8" name="code"><code class="hljs language-cobol"><ol class="hljs-ln" style="width:767px"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> i.fun_a</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    fun_a</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>a<span class="hljs-number">8</span>c<span class="hljs-number">4</span>:    b<span class="hljs-number">510</span>        ..      PUSH     {r<span class="hljs-number">4</span>,lr}</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>a<span class="hljs-number">8</span>c<span class="hljs-number">6</span>:    f<span class="hljs-number">000</span>f<span class="hljs-number">801</span>    ....    BL       fun_b ; <span class="hljs-number">0</span>x<span class="hljs-number">800</span>a<span class="hljs-number">8</span>cc</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>a<span class="hljs-number">8</span>ca:    bd<span class="hljs-number">10</span>        ..      POP      {r<span class="hljs-number">4</span>,pc}</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    i.fun_b</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    fun_b</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>a<span class="hljs-number">8</span>cc:    b<span class="hljs-number">510</span>        ..      PUSH     {r<span class="hljs-number">4</span>,lr}</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>a<span class="hljs-number">8</span>ce:    <span class="hljs-number">2000</span>        .       MOVS     r<span class="hljs-number">0</span>,#<span class="hljs-number">0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>a<span class="hljs-number">8</span>d<span class="hljs-number">0</span>:    <span class="hljs-number">4780</span>        .G      BLX      r<span class="hljs-number">0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>a<span class="hljs-number">8</span>d<span class="hljs-number">2</span>:    bd<span class="hljs-number">10</span>        ..      POP      {r<span class="hljs-number">4</span>,pc}</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    $<span class="hljs-keyword">Super</span>$$main</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>b<span class="hljs-number">298</span>:    b<span class="hljs-number">538</span>        <span class="hljs-number">8</span>.      PUSH     {r<span class="hljs-number">3</span>-r<span class="hljs-number">5</span>,lr}</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>b<span class="hljs-number">29</span>a:    <span class="hljs-number">2003</span>        .       MOVS     r<span class="hljs-number">0</span>,#<span class="hljs-number">3</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="15"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>b<span class="hljs-number">29</span>c:    f<span class="hljs-number">44</span>f<span class="hljs-number">7300</span>    O..s    MOV      r<span class="hljs-number">3</span>,#<span class="hljs-number">0</span>x<span class="hljs-number">200</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="16"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800</span>b<span class="hljs-number">2</span>a<span class="hljs-number">0</span>:    <span class="hljs-number">2200</span>        .<span class="hljs-string"><span class="hljs-string">"      MOVS     r2,#0</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="17"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2a2:    490f        .I      LDR      r1,[pc,#60] ; [0x800b2e0] = 0x80184a1</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="18"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2a4:    9000        ..      STR      r0,[sp,#0]</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="19"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2a6:    a00f        ..      ADR      r0,{pc}+0x3e ; 0x800b2e4</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="20"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2a8:    f005fb42    ..B.    BL       os_task_create ; 0x8010930</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="21"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2ac:    4604        .F      MOV      r4,r0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="22"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2ae:    bf00        ..      NOP      </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="23"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2b0:    b954        T.      CBNZ     r4,0x800b2c8 ; $Super$$main + 48</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="24"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2b2:    2332        2#      MOVS     r3,#0x32</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="25"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2b4:    4a0d        .J      LDR      r2,[pc,#52] ; [0x800b2ec] = 0x80184e2</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="26"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2b6:    a10e        ..      ADR      r1,{pc}+0x3a ; 0x800b2f0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="27"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2b8:    a00f        ..      ADR      r0,{pc}+0x40 ; 0x800b2f8</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="28"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2ba:    f002fddd    ....    BL       os_kprintf ; 0x800de78</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="29"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2be:    bf00        ..      NOP      </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="30"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2c0:    f7f5f92b    ..+.    BL       os_irq_disable ; 0x800051a</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="31"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2c4:    bf00        ..      NOP      </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="32"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2c6:    e7fe        ..      B        0x800b2c6 ; $Super$$main + 46</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="33"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2c8:    bf00        ..      NOP      </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="34"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2ca:    4620         F      MOV      r0,r4</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="35"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2cc:    f005ffa6    ....    BL       os_task_startup ; 0x801121c</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="36"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2d0:    f44f707a    O.zp    MOV      r0,#0x3e8</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="37"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2d4:    f006f874    ..t.    BL       os_task_tsleep ; 0x80113c0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="38"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2d8:    f7fffaf4    ....    BL       fun_a ; 0x800a8c4</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="39"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2dc:    2000        .       MOVS     r0,#0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="40"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800b2de:    bd38        8.      POP      {r3-r5,pc}</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="41"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">    _k_main_task_entry</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="42"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800696c:    b570        p.      PUSH     {r4-r6,lr}</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="43"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800696e:    4605        .F      MOV      r5,r0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="44"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x08006970:    f000f8e4    ....    BL       _k_other_auto_init ; 0x8006b3c</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="45"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x08006974:    4604        .F      MOV      r4,r0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="46"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x08006976:    b154        T.      CBZ      r4,0x800698e ; _k_main_task_entry + 34</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="47"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x08006978:    bf00        ..      NOP      </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="48"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-string">        0x0800697a:    22ad        ."</span>      MOVS     r<span class="hljs-number">2</span>,#<span class="hljs-number">0</span>xad</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="49"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800697</span>c:    <span class="hljs-number">4908</span>        .I      LDR      r<span class="hljs-number">1</span>,[pc,#<span class="hljs-number">32</span>] ; [<span class="hljs-number">0</span>x<span class="hljs-number">80069</span>a<span class="hljs-number">0</span>] <span class="hljs-operator">=</span> <span class="hljs-number">0</span>x<span class="hljs-number">8019</span>adf</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="50"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800697</span>e:    <span class="hljs-number">4809</span>        .H      LDR      r<span class="hljs-number">0</span>,[pc,#<span class="hljs-number">36</span>] ; [<span class="hljs-number">0</span>x<span class="hljs-number">80069</span>a<span class="hljs-number">4</span>] <span class="hljs-operator">=</span> <span class="hljs-number">0</span>x<span class="hljs-number">801</span>b<span class="hljs-number">150</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="51"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">08006980</span>:    f<span class="hljs-number">007</span>fa<span class="hljs-number">7</span>a    ..z.    BL       os_kprintf ; <span class="hljs-number">0</span>x<span class="hljs-number">800</span><span class="hljs-keyword">de</span><span class="hljs-number">78</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="52"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">08006984</span>:    bf<span class="hljs-number">00</span>        ..      NOP      </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="53"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">08006986</span>:    f<span class="hljs-number">7</span>f<span class="hljs-number">9</span>fdc<span class="hljs-number">8</span>    ....    BL       os_irq_disable ; <span class="hljs-number">0</span>x<span class="hljs-number">800051</span>a</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="54"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800698</span>a:    bf<span class="hljs-number">00</span>        ..      NOP      </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="55"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800698</span>c:    e<span class="hljs-number">7</span>fe        ..      B        <span class="hljs-number">0</span>x<span class="hljs-number">800698</span>c ; _k_main_task_entry <span class="hljs-operator">+</span> <span class="hljs-number">32</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="56"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800698</span>e:    a<span class="hljs-number">206</span>        ..      ADR      r<span class="hljs-number">2</span>,{pc}<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">1</span>a ; <span class="hljs-number">0</span>x<span class="hljs-number">80069</span>a<span class="hljs-number">8</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="57"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">08006990</span>:    a<span class="hljs-number">109</span>        ..      ADR      r<span class="hljs-number">1</span>,{pc}<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">28</span> ; <span class="hljs-number">0</span>x<span class="hljs-number">80069</span>b<span class="hljs-number">8</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="58"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">08006992</span>:    a<span class="hljs-number">00</span>b        ..      ADR      r<span class="hljs-number">0</span>,{pc}<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">2</span>e ; <span class="hljs-number">0</span>x<span class="hljs-number">80069</span>c<span class="hljs-number">0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="59"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">08006994</span>:    f<span class="hljs-number">007</span>fa<span class="hljs-number">70</span>    ..p.    BL       os_kprintf ; <span class="hljs-number">0</span>x<span class="hljs-number">800</span><span class="hljs-keyword">de</span><span class="hljs-number">78</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="60"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">08006998</span>:    f<span class="hljs-number">004</span>fc<span class="hljs-number">7</span>e    ..~.    BL       $<span class="hljs-keyword">Super</span>$$main ; <span class="hljs-number">0</span>x<span class="hljs-number">800</span>b<span class="hljs-number">298</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="61"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        <span class="hljs-number">0</span>x<span class="hljs-number">0800699</span>c:    bd<span class="hljs-number">70</span>        p.      POP      {r<span class="hljs-number">4</span>-r<span class="hljs-number">6</span>,pc}</div></div></li></ol></code><div class="hljs-button {2}" data-title="复制" onclick="hljs.copyCode(event)"></div></pre>
        <h3 style="margin-left:.0001pt;text-align:justify;">
         <a name="t15">
         </a>
         4.3 使用编译器对应的objdump解析栈回溯信息
        </h3>
        <p style="margin-left:.0001pt;text-align:justify;">
         使用cmd切换到OneOS-Cube的objdump工具的路径下,同时把工程生成的axf文件或elf文件拷贝到此路径(此处以axf文件为示例)，执行arm-none-eabi-objdump -C -x -S oneos.axf &gt; oneos.txt生成oneos.txt（反汇编文件）, 从oneos.txt中查看函数地址(0x0800a8d2 0x0800a8ca 0x0800b2dc 0x0800699c)前一条汇编指令，从而得到我们异常的现场(0x08006998_k_main_task_entry()-&gt;0x0800b2d8(libc_system_init(gcc解析mdk造成的差异性))-&gt;0x0800a8c6(fun_a)-&gt;0x0800a8d0(fun_b))。
        </p>
        <pre class="set-code-show" data-index="9" name="code"><code class="hljs language-cobol"><ol class="hljs-ln hundred" style="width:711px"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">void fun_a(void)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">{</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>a<span class="hljs-number">8</span>c<span class="hljs-number">4</span>: b<span class="hljs-number">510</span>       push {r<span class="hljs-number">4</span>, lr}</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    fun_b();</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>a<span class="hljs-number">8</span>c<span class="hljs-number">6</span>: f<span class="hljs-number">000</span> f<span class="hljs-number">801</span>  bl <span class="hljs-number">800</span>a<span class="hljs-number">8</span>cc <span class="hljs-operator">&lt;</span>fun_b<span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">}</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>a<span class="hljs-number">8</span>ca: bd<span class="hljs-number">10</span>       pop {r<span class="hljs-number">4</span>, pc}</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-number">0800</span>a<span class="hljs-number">8</span>cc <span class="hljs-operator">&lt;</span>fun_b<span class="hljs-operator">&gt;</span>:</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        os_task_tsleep(<span class="hljs-number">100</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">}</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">void fun_b(void)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="15"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">{</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="16"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>a<span class="hljs-number">8</span>cc: b<span class="hljs-number">510</span>       push {r<span class="hljs-number">4</span>, lr}</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="17"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    ((void (<span class="hljs-operator">*</span>)())<span class="hljs-number">0</span>)();</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="18"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>a<span class="hljs-number">8</span>ce: <span class="hljs-number">2000</span>       movs r<span class="hljs-number">0</span>, #<span class="hljs-number">0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="19"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>a<span class="hljs-number">8</span>d<span class="hljs-number">0</span>: <span class="hljs-number">4780</span>       blx r<span class="hljs-number">0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="20"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">}</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="21"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>a<span class="hljs-number">8</span>d<span class="hljs-number">2</span>: bd<span class="hljs-number">10</span>       pop {r<span class="hljs-number">4</span>, pc}</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="22"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="23"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">int main(void)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="24"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">{</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="25"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">298</span>: b<span class="hljs-number">538</span>       push {r<span class="hljs-number">3</span>, r<span class="hljs-number">4</span>, r<span class="hljs-number">5</span>, lr}</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="26"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    os_task_t <span class="hljs-operator">*</span>task;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="27"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="28"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    task <span class="hljs-operator">=</span> os_task_create(<span class="hljs-string">"user"</span>, user_task, <span class="hljs-keyword">NULL</span>, <span class="hljs-number">512</span>, <span class="hljs-number">3</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="29"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">29</span>a: <span class="hljs-number">2003</span>       movs r<span class="hljs-number">0</span>, #<span class="hljs-number">3</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="30"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">29</span>c: f<span class="hljs-number">44</span>f <span class="hljs-number">7300</span>  mov.w r<span class="hljs-number">3</span>, #<span class="hljs-number">512</span> ; <span class="hljs-number">0</span>x<span class="hljs-number">200</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="31"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>a<span class="hljs-number">0</span>: <span class="hljs-number">2200</span>       movs r<span class="hljs-number">2</span>, #<span class="hljs-number">0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="32"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>a<span class="hljs-number">2</span>: <span class="hljs-number">490</span>f       ldr r<span class="hljs-number">1</span>, [pc, #<span class="hljs-number">60</span>] ; (<span class="hljs-number">800</span>b<span class="hljs-number">2</span>e<span class="hljs-number">0</span> <span class="hljs-operator">&lt;</span>libc_system_init<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">4</span>e<span class="hljs-operator">&gt;</span>)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="33"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>a<span class="hljs-number">4</span>: <span class="hljs-number">9000</span>       str r<span class="hljs-number">0</span>, [sp, #<span class="hljs-number">0</span>]</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="34"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>a<span class="hljs-number">6</span>: a<span class="hljs-number">00</span>f       <span class="hljs-keyword">add</span> r<span class="hljs-number">0</span>, pc, #<span class="hljs-number">60</span> ; (adr r<span class="hljs-number">0</span>, <span class="hljs-number">800</span>b<span class="hljs-number">2</span>e<span class="hljs-number">4</span> <span class="hljs-operator">&lt;</span>libc_system_init<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">52</span><span class="hljs-operator">&gt;</span>)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="35"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>a<span class="hljs-number">8</span>: f<span class="hljs-number">005</span> fb<span class="hljs-number">42</span>  bl <span class="hljs-number">8010930</span> <span class="hljs-operator">&lt;</span>os_task_create<span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="36"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>ac: <span class="hljs-number">4604</span>       mov r<span class="hljs-number">4</span>, r<span class="hljs-number">0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="37"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    OS_ASSERT(task);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="38"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>ae: bf<span class="hljs-number">00</span>       nop</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="39"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>b<span class="hljs-number">0</span>: b<span class="hljs-number">954</span>       cbnz r<span class="hljs-number">4</span>, <span class="hljs-number">800</span>b<span class="hljs-number">2</span>c<span class="hljs-number">8</span> <span class="hljs-operator">&lt;</span>libc_system_init<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">36</span><span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="40"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>b<span class="hljs-number">2</span>: <span class="hljs-number">2332</span>       movs r<span class="hljs-number">3</span>, #<span class="hljs-number">50</span> ; <span class="hljs-number">0</span>x<span class="hljs-number">32</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="41"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>b<span class="hljs-number">4</span>: <span class="hljs-number">4</span>a<span class="hljs-number">0</span>d       ldr r<span class="hljs-number">2</span>, [pc, #<span class="hljs-number">52</span>] ; (<span class="hljs-number">800</span>b<span class="hljs-number">2</span><span class="hljs-keyword">ec</span> <span class="hljs-operator">&lt;</span>libc_system_init<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">5</span>a<span class="hljs-operator">&gt;</span>)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="42"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>b<span class="hljs-number">6</span>: a<span class="hljs-number">10</span>e       <span class="hljs-keyword">add</span> r<span class="hljs-number">1</span>, pc, #<span class="hljs-number">56</span> ; (adr r<span class="hljs-number">1</span>, <span class="hljs-number">800</span>b<span class="hljs-number">2</span>f<span class="hljs-number">0</span> <span class="hljs-operator">&lt;</span>libc_system_init<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">5</span>e<span class="hljs-operator">&gt;</span>)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="43"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>b<span class="hljs-number">8</span>: a<span class="hljs-number">00</span>f       <span class="hljs-keyword">add</span> r<span class="hljs-number">0</span>, pc, #<span class="hljs-number">60</span> ; (adr r<span class="hljs-number">0</span>, <span class="hljs-number">800</span>b<span class="hljs-number">2</span>f<span class="hljs-number">8</span> <span class="hljs-operator">&lt;</span>libc_system_init<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">66</span><span class="hljs-operator">&gt;</span>)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="44"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>ba: f<span class="hljs-number">002</span> fddd  bl <span class="hljs-number">800</span><span class="hljs-keyword">de</span><span class="hljs-number">78</span> <span class="hljs-operator">&lt;</span>os_kprintf<span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="45"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>be: bf<span class="hljs-number">00</span>       nop</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="46"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>c<span class="hljs-number">0</span>: f<span class="hljs-number">7</span>f<span class="hljs-number">5</span> f<span class="hljs-number">92</span>b  bl <span class="hljs-number">800051</span>a <span class="hljs-operator">&lt;</span>os_irq_disable<span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="47"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>c<span class="hljs-number">4</span>: bf<span class="hljs-number">00</span>       nop</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="48"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>c<span class="hljs-number">6</span>: e<span class="hljs-number">7</span>fe       b.n <span class="hljs-number">800</span>b<span class="hljs-number">2</span>c<span class="hljs-number">6</span> <span class="hljs-operator">&lt;</span>libc_system_init<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">34</span><span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="49"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>c<span class="hljs-number">8</span>: bf<span class="hljs-number">00</span>       nop</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="50"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    os_task_startup(task);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="51"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>ca: <span class="hljs-number">4620</span>       mov r<span class="hljs-number">0</span>, r<span class="hljs-number">4</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="52"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>cc: f<span class="hljs-number">005</span> ffa<span class="hljs-number">6</span>  bl <span class="hljs-number">801121</span>c <span class="hljs-operator">&lt;</span>os_task_startup<span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="53"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="54"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        os_task_tsleep(<span class="hljs-number">1000</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="55"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>d<span class="hljs-number">0</span>: f<span class="hljs-number">44</span>f <span class="hljs-number">707</span>a  mov.w r<span class="hljs-number">0</span>, #<span class="hljs-number">1000</span> ; <span class="hljs-number">0</span>x<span class="hljs-number">3</span>e<span class="hljs-number">8</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="56"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>d<span class="hljs-number">4</span>: f<span class="hljs-number">006</span> f<span class="hljs-number">874</span>  bl <span class="hljs-number">80113</span>c<span class="hljs-number">0</span> <span class="hljs-operator">&lt;</span>os_task_tsleep<span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="57"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">      fun_<span class="hljs-type">a()</span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="58"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>d<span class="hljs-number">8</span>: f<span class="hljs-number">7</span>ff faf<span class="hljs-number">4</span>  bl <span class="hljs-number">800</span>a<span class="hljs-number">8</span>c<span class="hljs-number">4</span> <span class="hljs-operator">&lt;</span>fun_a<span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="59"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="60"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800</span>b<span class="hljs-number">2</span>dc: <span class="hljs-number">2000</span>       movs r<span class="hljs-number">0</span>, #<span class="hljs-number">0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="61"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">}</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="62"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="63"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">static void _k_main_task_entry(void <span class="hljs-operator">*</span>arg)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="64"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">{</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="65"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800696</span>c: b<span class="hljs-number">570</span>       push {r<span class="hljs-number">4</span>, r<span class="hljs-number">5</span>, r<span class="hljs-number">6</span>, lr}</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="66"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800696</span>e: <span class="hljs-number">4605</span>       mov r<span class="hljs-number">5</span>, r<span class="hljs-number">0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="67"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    os_err_t ret;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="68"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="69"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    OS_UNREFERENCE(arg);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="70"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="71"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    <span class="hljs-operator">/</span><span class="hljs-operator">*</span> Auto initialization <span class="hljs-keyword">for</span> pre<span class="hljs-operator">/</span>device<span class="hljs-operator">/</span>component<span class="hljs-operator">/</span>env<span class="hljs-operator">/</span>app <span class="hljs-operator">*</span><span class="hljs-operator">/</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="72"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    ret <span class="hljs-operator">=</span> _k_<span class="hljs-keyword">other</span>_auto_init();</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="73"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">8006970</span>: f<span class="hljs-number">000</span> f<span class="hljs-number">8</span>e<span class="hljs-number">4</span>  bl <span class="hljs-number">8006</span>b<span class="hljs-number">3</span>c <span class="hljs-operator">&lt;</span>_k_<span class="hljs-keyword">other</span>_auto_init<span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="74"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">8006974</span>: <span class="hljs-number">4604</span>       mov r<span class="hljs-number">4</span>, r<span class="hljs-number">0</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="75"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    <span class="hljs-keyword">if</span> (OS_EOK !<span class="hljs-operator">=</span> ret)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="76"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">8006976</span>: b<span class="hljs-number">154</span>       cbz r<span class="hljs-number">4</span>, <span class="hljs-number">800698</span>e <span class="hljs-operator">&lt;</span>_k_main_task_entry<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">22</span><span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="77"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    {</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="78"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">        OS_ASSERT_EX(<span class="hljs-number">0</span>, <span class="hljs-string">"Automatic initialization after kernel startup failed"</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="79"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">8006978</span>: bf<span class="hljs-number">00</span>       nop</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="80"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800697</span>a: <span class="hljs-number">22</span>ad       movs r<span class="hljs-number">2</span>, #<span class="hljs-number">173</span> ; <span class="hljs-number">0</span>xad</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="81"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800697</span>c: <span class="hljs-number">4908</span>       ldr r<span class="hljs-number">1</span>, [pc, #<span class="hljs-number">32</span>] ; (<span class="hljs-number">80069</span>a<span class="hljs-number">0</span> <span class="hljs-operator">&lt;</span>_k_main_task_entry<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">34</span><span class="hljs-operator">&gt;</span>)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="82"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800697</span>e: <span class="hljs-number">4809</span>       ldr r<span class="hljs-number">0</span>, [pc, #<span class="hljs-number">36</span>] ; (<span class="hljs-number">80069</span>a<span class="hljs-number">4</span> <span class="hljs-operator">&lt;</span>_k_main_task_entry<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">38</span><span class="hljs-operator">&gt;</span>)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="83"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">8006980</span>: f<span class="hljs-number">007</span> fa<span class="hljs-number">7</span>a  bl <span class="hljs-number">800</span><span class="hljs-keyword">de</span><span class="hljs-number">78</span> <span class="hljs-operator">&lt;</span>os_kprintf<span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="84"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">8006984</span>: bf<span class="hljs-number">00</span>       nop</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="85"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">8006986</span>: f<span class="hljs-number">7</span>f<span class="hljs-number">9</span> fdc<span class="hljs-number">8</span>  bl <span class="hljs-number">800051</span>a <span class="hljs-operator">&lt;</span>os_irq_disable<span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="86"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800698</span>a: bf<span class="hljs-number">00</span>       nop</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="87"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800698</span>c: e<span class="hljs-number">7</span>fe       b.n <span class="hljs-number">800698</span>c <span class="hljs-operator">&lt;</span>_k_main_task_entry<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">20</span><span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="88"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="89"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="90"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">#ifdef OS_<span class="hljs-keyword">USING</span>_KERNEL_DEBUG</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="91"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    os_kprintf(<span class="hljs-string">"%s: OneOS start, version:%s"</span>, STARTUP_TAG, ONEOS_VERSION);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="92"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800698</span>e: a<span class="hljs-number">206</span>       <span class="hljs-keyword">add</span> r<span class="hljs-number">2</span>, pc, #<span class="hljs-number">24</span> ; (adr r<span class="hljs-number">2</span>, <span class="hljs-number">80069</span>a<span class="hljs-number">8</span> <span class="hljs-operator">&lt;</span>_k_main_task_entry<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">3</span>c<span class="hljs-operator">&gt;</span>)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="93"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">8006990</span>: a<span class="hljs-number">109</span>       <span class="hljs-keyword">add</span> r<span class="hljs-number">1</span>, pc, #<span class="hljs-number">36</span> ; (adr r<span class="hljs-number">1</span>, <span class="hljs-number">80069</span>b<span class="hljs-number">8</span> <span class="hljs-operator">&lt;</span>_k_main_task_entry<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">4</span>c<span class="hljs-operator">&gt;</span>)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="94"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">8006992</span>: a<span class="hljs-number">00</span>b       <span class="hljs-keyword">add</span> r<span class="hljs-number">0</span>, pc, #<span class="hljs-number">44</span> ; (adr r<span class="hljs-number">0</span>, <span class="hljs-number">80069</span>c<span class="hljs-number">0</span> <span class="hljs-operator">&lt;</span>_k_main_task_entry<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">54</span><span class="hljs-operator">&gt;</span>)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="95"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">8006994</span>: f<span class="hljs-number">007</span> fa<span class="hljs-number">70</span>  bl <span class="hljs-number">800</span><span class="hljs-keyword">de</span><span class="hljs-number">78</span> <span class="hljs-operator">&lt;</span>os_kprintf<span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="96"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">#endif</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="97"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="98"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-operator">/</span><span class="hljs-operator">*</span> <span class="hljs-keyword">Invoke</span> system main <span class="hljs-keyword">function</span> <span class="hljs-operator">*</span><span class="hljs-operator">/</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="99"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">#<span class="hljs-keyword">if</span> defined(__CC_ARM) || defined(__CLANG_ARM)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="100"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    extern int $<span class="hljs-keyword">Super</span>$$main(void);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="101"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    $<span class="hljs-keyword">Super</span>$$main();</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="102"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">8006998</span>: f<span class="hljs-number">004</span> fc<span class="hljs-number">7</span>e  bl <span class="hljs-number">800</span>b<span class="hljs-number">298</span> <span class="hljs-operator">&lt;</span>libc_system_init<span class="hljs-operator">+</span><span class="hljs-number">0</span>x<span class="hljs-number">6</span><span class="hljs-operator">&gt;</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="103"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    extern int main(void);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="104"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    main();</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="105"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">#endif</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="106"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="107"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    <span class="hljs-keyword">return</span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="108"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">}</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="109"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-number">800699</span>c: bd<span class="hljs-number">70</span>       pop {r<span class="hljs-number">4</span>, r<span class="hljs-number">5</span>, r<span class="hljs-number">6</span>, pc}</div></div></li></ol></code><div class="hljs-button {2}" data-title="复制" onclick="hljs.copyCode(event)"></div></pre>
        <p>
        </p>
       </div>
       <div data-report-view='{"mod":"1585297308_001","spm":"1001.2101.3001.6548","dest":"https://blog.csdn.net/qq_42260970/article/details/125911126","extend1":"pc","ab":"new"}'>
        <div>
        </div>
       </div>
      </div>
     </article>
    </div>
    <div class="directory-boxshadow-dialog" style="display:none;">
     <div class="directory-boxshadow-dialog-box">
     </div>
     <div class="vip-limited-time-offer-box-new" id="vip-limited-time-offer-box-new">
      <img class="limited-img limited-img-new" src="https://csdnimg.cn/release/blogv2/dist/pc/img/vip-limited-close-newWhite.png"/>
      <div class="vip-limited-time-top">
       确定要放弃本次机会？
      </div>
      <span class="vip-limited-time-text">
       福利倒计时
      </span>
      <div class="limited-time-box-new">
       <span class="time-hour">
       </span>
       <i>
        :
       </i>
       <span class="time-minite">
       </span>
       <i>
        :
       </i>
       <span class="time-second">
       </span>
      </div>
      <div class="limited-time-vip-box">
       <p>
        <img class="coupon-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/vip-limited-close-roup.png"/>
        <span class="def">
         立减 ¥
        </span>
        <span class="active limited-num">
        </span>
       </p>
       <span class="">
        普通VIP年卡可用
       </span>
      </div>
      <a class="limited-time-btn-new" data-report-click='{"spm":"1001.2101.3001.9621"}' data-report-query="spm=1001.2101.3001.9621" href="https://mall.csdn.net/vip">
       立即使用
      </a>
     </div>
    </div>
    <div class="more-toolbox-new more-toolbox-active" id="toolBarBox">
     <div class="left-toolbox" style="position: fixed; z-index: 999; left: 405.667px; bottom: 0px; width: 760px;">
      <div class="toolbox-left">
       <div class="profile-box">
        <a class="profile-href" href="https://blog.csdn.net/qq_42260970" target="_blank">
         <img class="profile-img" src="https://profile-avatar.csdnimg.cn/default.jpg!1"/>
         <span class="profile-name">
          qq_42260970
         </span>
        </a>
       </div>
       <div class="profile-attend">
        <a class="tool-attend tool-bt-button tool-bt-attend" href="javascript:;">
         关注
        </a>
        <a class="tool-item-follow active-animation" style="display:none;">
         关注
        </a>
       </div>
      </div>
      <div class="toolbox-middle">
       <ul class="toolbox-list">
        <li class="tool-item tool-item-size tool-active is-like" id="is-like">
         <a class="tool-item-href">
          <img alt="" class="animation-dom active-animation" id="is-like-imgactive-animation-like" src="https://csdnimg.cn/release/blogv2/dist/pc/img/tobarThumbUpactive.png" style="display:none;"/>
          <img alt="" class="isactive" id="is-like-imgactive" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newHeart2021Active.png" style="display:none"/>
          <img alt="" class="isdefault" id="is-like-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newHeart2021Black.png" style="display:block"/>
          <span class="count" id="spanCount">
           1
          </span>
         </a>
         <div class="tool-hover-tip">
          <span class="text space">
           点赞
          </span>
         </div>
        </li>
        <li class="tool-item tool-item-size tool-active is-unlike" id="is-unlike">
         <a class="tool-item-href">
          <img alt="" class="isactive" id="is-unlike-imgactive" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newUnHeart2021Active.png" style="margin-right:0px;display:none"/>
          <img alt="" class="isdefault" id="is-unlike-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newUnHeart2021Black.png" style="margin-right:0px;display:block"/>
          <span class="count" id="unlikeCount">
          </span>
         </a>
         <div class="tool-hover-tip">
          <span class="text space">
           踩
          </span>
         </div>
        </li>
        <li class="tool-item tool-item-size tool-active is-collection">
         <a class="tool-item-href" data-report-click='{"mod":"popu_824","spm":"1001.2101.3001.4130","ab":"new"}' href="javascript:;">
          <img alt="" class="animation-dom active-animation" id="is-collection-img-collection" src="https://csdnimg.cn/release/blogv2/dist/pc/img/tobarCollectionActive.png" style="display:none"/>
          <img alt="" class="isdefault" id="is-collection-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newCollectBlack.png" style="display:block"/>
          <img alt="" class="isactive" id="is-collection-imgactive" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newCollectActive.png" style="display:none"/>
          <span class="count get-collection" data-num="6" id="get-collection" style="color: rgb(153, 154, 170);">
           6
          </span>
         </a>
         <div class="tool-hover-tip collect">
          <div class="collect-operate-box">
           <span class="collect-text" id="is-collection">
            收藏
           </span>
          </div>
         </div>
         <div class="tool-active-list">
          <div class="text">
           觉得还不错?
           <span class="collect-text" id="tool-active-list-collection">
            一键收藏
           </span>
           <img alt="" id="tool-active-list-close" src="https://csdnimg.cn/release/blogv2/dist/pc/img/collectionCloseWhite.png"/>
          </div>
         </div>
        </li>
        <li class="tool-item tool-item-size tool-active tool-item-comment">
         <a class="tool-item-href go-side-comment" data-report-click='{"spm":"1001.2101.3001.7009"}'>
          <img alt="" class="isdefault" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newComment2021Black.png"/>
          <span class="count">
           1
          </span>
         </a>
         <div class="tool-hover-tip">
          <span class="text space">
           评论
          </span>
         </div>
        </li>
        <li class="tool-item tool-item-bar">
        </li>
        <li class="tool-item tool-item-size tool-active tool-QRcode" data-type="article" id="tool-share">
         <a class="tool-item-href" data-report-click='{"mod":"1582594662_002","spm":"1001.2101.3001.4129","ab":"new"}' href="javascript:;">
          <img alt="" class="isdefault" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newShareBlack.png"/>
         </a>
         <div class="QRcode active" id="tool-QRcode">
          <div class="share-bg-icon icon1 icon2" id="shareBgIcon">
          </div>
          <div class="share-bg-box">
           <div class="share-content">
            <img alt="" class="share-avatar" src="https://profile-avatar.csdnimg.cn/default.jpg!1"/>
            <div class="share-tit">
             巧用栈回溯，帮你快速定位问题
            </div>
            <div class="share-dec">
             在系统运行或调试过程中，程序总是出现一些出乎意料的现象（例如程序异常或者某个任务运行不是预料的）。为了帮助用户快速定位问题，减少出现问题难以定位的情况，操作系统中的栈回溯功能就显得十分重要。栈回溯到底是什么？又该如何使用呢？下面让我们一起来详细了解一下吧！（学会了这一招，以后遇到难以定位的问题还怕啥？）...
            </div>
            <a class="url" data-report-click='{"spm":"1001.2101.3001.7493"}' id="copyPosterUrl">
             复制链接
            </a>
           </div>
           <div class="share-code">
            <div class="share-code-box" id="shareCode">
             <canvas height="65" width="65">
             </canvas>
             <img style="display: none;"/>
            </div>
            <div class="share-code-text">
             扫一扫
            </div>
           </div>
          </div>
          <div class="share-code-type">
           <p class="hot" data-type="hot">
            <span>
             热门
            </span>
           </p>
           <p class="vip" data-type="vip">
            <span>
             VIP
            </span>
           </p>
          </div>
         </div>
        </li>
       </ul>
      </div>
      <div class="toolbox-right">
       <div class="tool-directory">
        <a class="bt-columnlist-show" data-description="" data-free="true" data-hotrank="0" data-id="11892180" data-img="https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64" data-join="false" data-oldprice="0" data-people="4" data-price="0" data-report-click='{"spm":"1001.2101.3001.6334","extend1":"专栏目录"}' data-status="true" data-studysubscribe="false" data-studyvip="true" data-subscribe="false" data-sum="20" data-title="OneOS技术分享" data-url="https://blog.csdn.net/qq_42260970/category_11892180.html">
         专栏目录
        </a>
       </div>
      </div>
     </div>
    </div>
    <a id="commentBox" name="commentBox">
    </a>
    <div class="comment-box comment-box-new2 login-comment-box-new" id="pcCommentBox" style="">
     <div class="has-comment" style="display:block">
      <div class="one-line-box">
       <div class="has-comment-tit go-side-comment">
        <span class="count">
         1
        </span>
        条评论
       </div>
       <div class="has-comment-con comment-operate-item">
        <div class="hot-comment-box" data-commentid="22702210">
         <a class="hot-comment-href" href="https://blog.csdn.net/m0_51969330" target="_blank">
          <img src="https://profile-avatar.csdnimg.cn/d8714d81a4424335a00d14cd5b948646_m0_51969330.jpg!1"/>
          Baker-Chen
         </a>
         <span class="hot-comment-tag">
          热评
         </span>
         <div class="hot-comment-con">
          栈回溯写的太好了，支持！
         </div>
        </div>
       </div>
       <a class="has-comment-bt-right go-side-comment focus">
        写评论
       </a>
      </div>
     </div>
    </div>
    <div class="first-recommend-box recommend-box recommend-highlight-default">
     <div class="recommend-item-box type_blog clearfix" data-report-view='{"ab":"new","spm":"1001.2101.3001.6661.1","mod":"popu_871","extra":"{\"highlightScore\":0.0,\"utm_medium\":\"distribute.pc_relevant_t0.none-task-blog-2~default~BlogCommendFromBaidu~Rate-1-104040516-blog-125911126.235^v43^pc_blog_bottom_relevance_base7\",\"dist_request_id\":\"1718949734938_39244\"}","dist_request_id":"1718949734938_39244","ab_strategy":"vipdefault","index":"1","strategy":"2~default~BlogCommendFromBaidu~Rate","dest":"https://blog.csdn.net/u013318019/article/details/104040516"}' data-url="https://blog.csdn.net/u013318019/article/details/104040516">
      <div class="content-box">
       <div class="content-blog display-flex">
        <div class="title-box">
         <span class="type">
          <img alt="" src="https://csdnimg.cn/release/blogv2/dist/components/img/blogType.png"/>
          <span class="tip">
           博客
          </span>
         </span>
         <a class="tit" data-report-click='{"ab":"new","spm":"1001.2101.3001.6661.1","mod":"popu_871","extra":"{\"highlightScore\":0.0,\"utm_medium\":\"distribute.pc_relevant_t0.none-task-blog-2~default~BlogCommendFromBaidu~Rate-1-104040516-blog-125911126.235^v43^pc_blog_bottom_relevance_base7\",\"dist_request_id\":\"1718949734938_39244\"}","dist_request_id":"1718949734938_39244","ab_strategy":"vipdefault","index":"1","strategy":"2~default~BlogCommendFromBaidu~Rate","dest":"https://blog.csdn.net/u013318019/article/details/104040516"}' data-report-query="spm=1001.2101.3001.6661.1&amp;utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-104040516-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-104040516-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;utm_relevant_index=1" href="https://blog.csdn.net/u013318019/article/details/104040516" target="_blank">
          <div class="left ellipsis-online ellipsis-online-1">
           <em>
            栈
           </em>
           <em>
            回溯
           </em>
          </div>
         </a>
        </div>
        <div class="info-box display-flex">
         <div class="info">
          <a data-report-query="spm=1001.2101.3001.6661.1&amp;utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-104040516-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-104040516-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;utm_relevant_index=1" href="https://blog.csdn.net/u013318019" target="_blank">
           <span class="blog-title">
            我的博客
           </span>
          </a>
         </div>
         <div class="info display-flex">
          <span class="info-block time">
           01-19
          </span>
          <span class="info-block read">
           <img alt="" class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png"/>
           4244
          </span>
         </div>
        </div>
       </div>
       <div class="desc-box">
        <a data-report-click='{"ab":"new","spm":"1001.2101.3001.6661.1","mod":"popu_871","extra":"{\"highlightScore\":0.0,\"utm_medium\":\"distribute.pc_relevant_t0.none-task-blog-2~default~BlogCommendFromBaidu~Rate-1-104040516-blog-125911126.235^v43^pc_blog_bottom_relevance_base7\",\"dist_request_id\":\"1718949734938_39244\"}","dist_request_id":"1718949734938_39244","ab_strategy":"vipdefault","index":"1","strategy":"2~default~BlogCommendFromBaidu~Rate","dest":"https://blog.csdn.net/u013318019/article/details/104040516"}' data-report-query="spm=1001.2101.3001.6661.1&amp;utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-104040516-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-104040516-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;utm_relevant_index=1" href="https://blog.csdn.net/u013318019/article/details/104040516" target="_blank">
         <div class="desc ellipsis-online ellipsis-online-1">
          首先必须明确一点也是非常重要的一点，
          <em>
           栈
          </em>
          是向下生长的，所谓向下生长是指从内存高地址-&gt;低地址的路径延伸，那么就很明显了，
          <em>
           栈
          </em>
          有
          <em>
           栈
          </em>
          底和
          <em>
           栈
          </em>
          顶，那么
          <em>
           栈
          </em>
          顶的地址要比
          <em>
           栈
          </em>
          底低。对x86体系的CPU而言，其中：

---&gt; 寄存器ebp（base pointer ）可称为“帧指针”或“基址指针”，其实语意是相同的。

---&gt; 寄存器esp（stack pointer）可称为“
          <em>
           栈
          </em>
          指针”。

要知...
         </div>
        </a>
       </div>
      </div>
     </div>
    </div>
    <div class="second-recommend-box recommend-box recommend-highlight-default">
     <div class="recommend-item-box type_blog clearfix" data-report-view='{"ab":"new","spm":"1001.2101.3001.6650.1","mod":"popu_387","extra":"{\"highlightScore\":0.0,\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-1-132955659-blog-125911126.235^v43^pc_blog_bottom_relevance_base7\",\"dist_request_id\":\"1718949734938_39244\"}","dist_request_id":"1718949734938_39244","ab_strategy":"vipdefault","index":"1","strategy":"2~default~BlogCommendFromBaidu~Rate","dest":"https://blog.csdn.net/weixin_45842280/article/details/132955659"}' data-url="https://blog.csdn.net/weixin_45842280/article/details/132955659">
      <div class="content-box">
       <div class="content-blog display-flex">
        <div class="title-box">
         <span class="type">
          <img alt="" src="https://csdnimg.cn/release/blogv2/dist/components/img/blogType.png"/>
          <span class="tip">
           博客
          </span>
         </span>
         <a class="tit" data-report-click='{"ab":"new","spm":"1001.2101.3001.6650.1","mod":"popu_387","extra":"{\"highlightScore\":0.0,\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-1-132955659-blog-125911126.235^v43^pc_blog_bottom_relevance_base7\",\"dist_request_id\":\"1718949734938_39244\"}","dist_request_id":"1718949734938_39244","ab_strategy":"vipdefault","index":"1","strategy":"2~default~BlogCommendFromBaidu~Rate","dest":"https://blog.csdn.net/weixin_45842280/article/details/132955659"}' data-report-query="spm=1001.2101.3001.6650.1&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-132955659-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-132955659-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;utm_relevant_index=2" href="https://blog.csdn.net/weixin_45842280/article/details/132955659" target="_blank">
          <div class="left ellipsis-online ellipsis-online-1">
           Linux
           <em>
            栈
           </em>
           <em>
            回溯
           </em>
          </div>
          <div class="tag">
           最新发布
          </div>
         </a>
        </div>
        <div class="info-box display-flex">
         <div class="info">
          <a data-report-query="spm=1001.2101.3001.6650.1&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-132955659-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-132955659-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;utm_relevant_index=2" href="https://blog.csdn.net/weixin_45842280" target="_blank">
           <span class="blog-title">
            小嵌同学的博客
           </span>
          </a>
         </div>
         <div class="info display-flex">
          <span class="info-block time">
           11-28
          </span>
          <span class="info-block read">
           <img alt="" class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png"/>
           1443
          </span>
         </div>
        </div>
       </div>
       <div class="desc-box">
        <a data-report-click='{"ab":"new","spm":"1001.2101.3001.6650.1","mod":"popu_387","extra":"{\"highlightScore\":0.0,\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-1-132955659-blog-125911126.235^v43^pc_blog_bottom_relevance_base7\",\"dist_request_id\":\"1718949734938_39244\"}","dist_request_id":"1718949734938_39244","ab_strategy":"vipdefault","index":"1","strategy":"2~default~BlogCommendFromBaidu~Rate","dest":"https://blog.csdn.net/weixin_45842280/article/details/132955659"}' data-report-query="spm=1001.2101.3001.6650.1&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-132955659-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-132955659-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;utm_relevant_index=2" href="https://blog.csdn.net/weixin_45842280/article/details/132955659" target="_blank">
         <div class="desc ellipsis-online ellipsis-online-1">
          日常工作中，我们在开发软件程序时，经常会遇到程序奔溃的问题，导致程序奔溃的原因有很多，我们一般都是定位到相关代码，再去查询具体原因。而定位到bug相关代码往往需要依赖
          <em>
           栈
          </em>
          <em>
           回溯
          </em>
          这个功能，知道程序是在哪里挂掉的。在Linux系统中，
          <em>
           栈
          </em>
          <em>
           回溯
          </em>
          （stack trace）是用于跟踪程序执行期间函数调用的一种技术，记录了程序在出现错误或异常时，从当前位置开始追溯回到程序的执行起点，包括每个函数的调用关系和相应的返回地址。
          <em>
           栈
          </em>
          <em>
           回溯
          </em>
          可以
          <em>
           帮
          </em>
          助开发人员
          <em>
           快速
          </em>
          <em>
           定位问题
          </em>
          所在。
         </div>
        </a>
       </div>
      </div>
     </div>
    </div>
    <div class="recommend-box insert-baidu-box recommend-highlight-default">
     <div class="recommend-item-box no-index" style="display:none">
     </div>
     <div class="recommend-item-box type_blog clearfix" data-report-view='{"ab":"new","spm":"1001.2101.3001.6650.2","mod":"popu_387","extra":"{\"highlightScore\":0.0,\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-2-122835924-blog-125911126.235^v43^pc_blog_bottom_relevance_base7\",\"dist_request_id\":\"1718949734938_39244\"}","dist_request_id":"1718949734938_39244","ab_strategy":"vipdefault","index":"2","strategy":"2~default~BlogCommendFromBaidu~Rate","dest":"https://blog.csdn.net/qwe5959798/article/details/122835924"}' data-url="https://blog.csdn.net/qwe5959798/article/details/122835924">
      <div class="content-box">
       <div class="content-blog display-flex">
        <div class="title-box">
         <span class="type">
          <img alt="" src="https://csdnimg.cn/release/blogv2/dist/components/img/blogType.png"/>
          <span class="tip">
           博客
          </span>
         </span>
         <a class="tit" data-report-click='{"ab":"new","spm":"1001.2101.3001.6650.2","mod":"popu_387","extra":"{\"highlightScore\":0.0,\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-2-122835924-blog-125911126.235^v43^pc_blog_bottom_relevance_base7\",\"dist_request_id\":\"1718949734938_39244\"}","dist_request_id":"1718949734938_39244","ab_strategy":"vipdefault","index":"2","strategy":"2~default~BlogCommendFromBaidu~Rate","dest":"https://blog.csdn.net/qwe5959798/article/details/122835924"}' data-report-query="spm=1001.2101.3001.6650.2&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-2-122835924-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-2-122835924-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;utm_relevant_index=3" href="https://blog.csdn.net/qwe5959798/article/details/122835924" target="_blank">
          <div class="left ellipsis-online ellipsis-online-1">
           (GCC)STM32进阶详解之
           <em>
            栈
           </em>
           <em>
            回溯
           </em>
          </div>
         </a>
        </div>
        <div class="info-box display-flex">
         <div class="info">
          <a data-report-query="spm=1001.2101.3001.6650.2&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-2-122835924-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-2-122835924-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;utm_relevant_index=3" href="https://blog.csdn.net/qwe5959798" target="_blank">
           <span class="blog-title">
            飞临云的博客
           </span>
          </a>
         </div>
         <div class="info display-flex">
          <span class="info-block time">
           12-22
          </span>
          <span class="info-block read">
           <img alt="" class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png"/>
           2379
          </span>
         </div>
        </div>
       </div>
       <div class="desc-box">
        <a data-report-click='{"ab":"new","spm":"1001.2101.3001.6650.2","mod":"popu_387","extra":"{\"highlightScore\":0.0,\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-2-122835924-blog-125911126.235^v43^pc_blog_bottom_relevance_base7\",\"dist_request_id\":\"1718949734938_39244\"}","dist_request_id":"1718949734938_39244","ab_strategy":"vipdefault","index":"2","strategy":"2~default~BlogCommendFromBaidu~Rate","dest":"https://blog.csdn.net/qwe5959798/article/details/122835924"}' data-report-query="spm=1001.2101.3001.6650.2&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-2-122835924-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-2-122835924-blog-125911126.235%5Ev43%5Epc_blog_bottom_relevance_base7&amp;utm_relevant_index=3" href="https://blog.csdn.net/qwe5959798/article/details/122835924" target="_blank">
         <div class="desc ellipsis-online ellipsis-online-1">
          由上一篇大概了解了函数是如何被调用，中断或者说异常又是如何被调用，而这一篇相当于上一篇知识的一个应用，也是上一篇遗留的思考，即在hardfault中如何判断是从何处触发这个异常的。本来打算自己写demo，但是查到github上有一个开源的CmBacktrace，既然有大牛已经写了开源的库，就直接拿来分析印证吧。硬件我使用的是STM32F103ZET6最小系统板，demo是项目中提供的，直接下载即可。
         </div>
        </a>
       </div>
      </div>
     </div>
     <div class="recommend-item-box baiduSearch clearfix" data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-133823352-blog-125911126.235^v43^pc_blog_bottom_relevance_base7\",\"dist_request_id\":\"1718949734938_39244\",\"parent_index\":\"2\"}","spm":"1001.2101.3001.4242.1","dest":"https://blog.csdn.net/jackailson/article/details/133823352","strategy":"2~default~baidujs_baidulandingword~default","ab":"new","index":"1"}' data-type="blog" data-url="https://blog.csdn.net/jackailson/article/details/133823352">
      <div class="content-box">
       <div class="content-blog display-flex">
        <div class="title-box">
         <span class="type">
          <img alt="" src="https://csdnimg.cn/release/blogv2/dist/components/img/blogType.png"/>
          <span class="tip">
           博客
          </span>
         </span>
         <a class="tit" data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-133823352-blog-125911126.235^v43^pc_blog_bottom_relevance_base7\",\"dist_request_id\":\"1718949734938_39244\",\"parent_index\":\"2\"}","spm":"1001.2101.3001.4242.1","dest":"https://blog.csdn.net/jackailson/article/details/133823352","strategy":"2~default~baidujs_baidulandingword~default","ab":"new","index":"1"}' data-report-query="utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-133823352-blog-125911126.235^v43^pc_blog_bottom_relevance_base7&amp;spm=1001.2101.3001.4242.1&amp;utm_relevant_index=4" href="https://blog.csdn.net/jackailson/article/details/133823352" target="_blank">
          <div class="left ellipsis-online ellipsis-online-1">
           ARMv7-A 那些事 - 7.
           <em>
            栈
           </em>
           <em>
            回溯
           </em>
           浅析_frame pointers
           <em>
            栈
           </em>
           <em>
            回溯
           </em>
           原理
          </div>
         </a>
        </div>
        <div class="info-box display-flex">
         <div class="info display-flex">
          <span class="info-block">
           6-6
          </span>
         </div>
        </div>
       </div>
       <div class="desc-box">
        <a data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-133823352-blog-125911126.235^v43^pc_blog_bottom_relevance_base7\",\"dist_request_id\":\"1718949734938_39244\",\"parent_index\":\"2\"}","spm":"1001.2101.3001.4242.1","dest":"https://blog.csdn.net/jackailson/article/details/133823352","strategy":"2~default~baidujs_baidulandingword~default","ab":"new","index":"1"}' data-report-query="utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-133823352-blog-125911126.235^v43^pc_blog_bottom_relevance_base7&amp;spm=1001.2101.3001.4242.1&amp;utm_relevant_index=4" href="https://blog.csdn.net/jackailson/article/details/133823352" target="_blank">
         <div class="desc ellipsis-online ellipsis-online-1">
          在
          <em>
           栈
          </em>
          <em>
           回溯
          </em>
          的过程中,我们主要利用FP寄存器进行
          <em>
           栈
          </em>
          <em>
           回溯
          </em>
          。通过FP就可以知道当前函数的
          <em>
           栈
          </em>
          底,从而可以找到存储在
          <em>
           栈
          </em>
          帧中的LR寄存器的数据,这个数据就是函数的返回地址。同时也可以找到保存在函数
          <em>
           栈
          </em>
          帧中的上一级函数FP的数据,这个数据指向了上一级函数的
          <em>
           栈
          </em>
          底,按照同样的方法可以找出上一级函数
          <em>
           栈
          </em>
          帧中存储的LR和FP数据,就知道...
         </div>
        </a>
       </div>
      </div>
     </div>
     <div class="recommend-item-box baiduSearch clearfix" data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-2-131661521-blog-125911126.235^v43^pc_blog_bottom_relevance_base7\",\"dist_request_id\":\"1718949734938_39244\",\"parent_index\":\"2\"}","spm":"1001.2101.3001.4242.2","dest":"https://blog.csdn.net/youzhangjing_/article/details/131661521","strategy":"2~default~baidujs_baidulandingword~default","ab":"new","index":"2"}' data-type="blog" data-url="https://blog.csdn.net/youzhangjing_/article/details/131661521">
      <div class="content-box">
       <div class="content-blog display-flex">
        <div class="title-box">
         <span class="type">
          <img alt="" src="https://csdnimg.cn/release/blogv2/dist/components/img/blogType.png"/>
          <span class="tip">
           博客
          </span>
         </span>
         <a class="tit" data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-2-131661521-blog-125911126.235^v43^pc_blog_bottom_relevance_base7\",\"dist_request_id\":\"1718949734938_39244\",\"parent_index\":\"2\"}","spm":"1001.2101.3001.4242.2","dest":"https://blog.csdn.net/youzhangjing_/article/details/131661521","strategy":"2~default~baidujs_baidulandingword~default","ab":"new","index":"2"}' data-report-query="utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-2-131661521-blog-125911126.235^v43^pc_blog_bottom_relevance_base7&amp;spm=1001.2101.3001.4242.2&amp;utm_relevant_index=5" href="https://blog.csdn.net/youzhangjing_/article/details/131661521" target="_blank">
          <div class="left ellipsis-online ellipsis-online-1">
           一文解析Arm64
           <em>
            栈
           </em>
           <em>
            回溯
           </em>
           _arm 内核
           <em>
            栈
           </em>
           指针
          </div>
         </a>
        </div>
        <div class="info-box display-flex">
         <div class="info display-flex">
          <span class="info-block">
           6-12
          </span>
         </div>
        </div>
       </div>
       <div class="desc-box">
        <a data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-2-131661521-blog-125911126.235^v43^pc_blog_bottom_relevance_base7\",\"dist_request_id\":\"1718949734938_39244\",\"parent_index\":\"2\"}","spm":"1001.2101.3001.4242.2","dest":"https://blog.csdn.net/youzhangjing_/article/details/131661521","strategy":"2~default~baidujs_baidulandingword~default","ab":"new","index":"2"}' data-report-query="utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-2-131661521-blog-125911126.235^v43^pc_blog_bottom_relevance_base7&amp;spm=1001.2101.3001.4242.2&amp;utm_relevant_index=5" href="https://blog.csdn.net/youzhangjing_/article/details/131661521" target="_blank">
         <div class="desc ellipsis-online ellipsis-online-1">
          第一张图片是寄存器信息,pc寄存器和sp寄存器对
          <em>
           栈
          </em>
          <em>
           回溯
          </em>
          有重要作用。第二张图是内核线程irq/231-dwc3
          <em>
           栈
          </em>
          数据的二进制转储,
          <em>
           栈
          </em>
          <em>
           回溯
          </em>
          就是在这些二进制数据中找到
          <em>
           栈
          </em>
          帧,从而找到调用的函数地址。 下图是内核
          <em>
           栈
          </em>
          <em>
           回溯
          </em>
          的结果,发生异常函数的地址保存在异常
          <em>
           栈
          </em>
          中,不在内核线程irq/231-dwc3
          <em>
           栈
          </em>
          中。 发生异常的函数可以根据pc寄存器得...
         </div>
        </a>
       </div>
      </div>
     </div>
    </div>
    <div class="recommend-nps-box common-nps-box" id="recommendNps" style="display: block;">
     <h3 class="aside-title">
      “相关推荐”对你有帮助么？
     </h3>
     <div class="aside-content">
      <ul class="newnps-list">
       <li class="newnps-item" data-type="非常没帮助">
        <div class="newnps-img-box">
         <img alt="" class="newnps-img active" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeel1.png"/>
         <img alt="" class="newnps-img default" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeelGrey1.png"/>
        </div>
        <div class="newnps-text">
         非常没帮助
        </div>
       </li>
       <li class="newnps-item" data-type="没帮助">
        <div class="newnps-img-box">
         <img alt="" class="newnps-img active" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeel2.png"/>
         <img alt="" class="newnps-img default" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeelGrey2.png"/>
        </div>
        <div class="newnps-text">
         没帮助
        </div>
       </li>
       <li class="newnps-item" data-type="一般">
        <div class="newnps-img-box">
         <img alt="" class="newnps-img active" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeel3.png"/>
         <img alt="" class="newnps-img default" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeelGrey3.png"/>
        </div>
        <div class="newnps-text">
         一般
        </div>
       </li>
       <li class="newnps-item" data-type="有帮助">
        <div class="newnps-img-box">
         <img alt="" class="newnps-img active" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeel4.png"/>
         <img alt="" class="newnps-img default" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeelGrey4.png"/>
        </div>
        <div class="newnps-text">
         有帮助
        </div>
       </li>
       <li class="newnps-item" data-type="非常有帮助">
        <div class="newnps-img-box">
         <img alt="" class="newnps-img active" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeel5.png"/>
         <img alt="" class="newnps-img default" src="https://csdnimg.cn/release/blogv2/dist/pc/img/npsFeelGrey5.png"/>
        </div>
        <div class="newnps-text">
         非常有帮助
        </div>
       </li>
      </ul>
      <div class="newnps-form-box">
       <div class="newnps-form">
        <input class="newnps-input" placeholder="请输入建议或反馈后点击提交" type="text"/>
        <span class="newnps-btn">
         提交
        </span>
       </div>
      </div>
     </div>
    </div>
   </main>
   <aside class="blog_container_aside">
    <div class="aside-box" id="asideProfile">
     <div class="profile-intro d-flex">
      <div class="avatar-box d-flex justify-content-center flex-column">
       <a data-report-click='{"mod":"popu_379","spm":"1001.2101.3001.4121","dest":"https://blog.csdn.net/qq_42260970","ab":"new"}' href="https://blog.csdn.net/qq_42260970" target="_blank">
        <img class="avatar_pic" src="https://profile-avatar.csdnimg.cn/default.jpg!1"/>
       </a>
      </div>
      <div class="user-info d-flex flex-column profile-intro-name-box">
       <div class="profile-intro-name-boxTop">
        <a class="" data-report-click='{"mod":"popu_379","spm":"1001.2101.3001.4122","dest":"https://blog.csdn.net/qq_42260970","ab":"new"}' href="https://blog.csdn.net/qq_42260970" id="uid" target="_blank" title="qq_42260970">
         <span class="name" username="qq_42260970">
          qq_42260970
         </span>
        </a>
        <span>
        </span>
        <span class="flag expert-blog">
         <span class="bubble">
          CSDN认证博客专家
         </span>
        </span>
        <span class="flag company-blog">
         <span class="bubble">
          CSDN认证企业博客
         </span>
        </span>
       </div>
       <div class="profile-intro-name-boxFooter">
        <span class="personal-home-page personal-home-years" title="已加入 CSDN 6年">
         码龄6年
        </span>
        <span class="personal-home-page">
         <a class="personal-home-certification" href="https://i.csdn.net/#/uc/profile?utm_source=14998968" target="_blank" title="暂无认证">
          <img alt="" src="https://csdnimg.cn/identity/nocErtification.png"/>
          暂无认证
         </a>
        </span>
       </div>
      </div>
     </div>
     <div class="data-info d-flex item-tiling">
      <dl class="text-center" title="21">
       <a data-report-click='{"mod":"1598321000_001","spm":"1001.2101.3001.4310"}' data-report-query="t=1" href="https://blog.csdn.net/qq_42260970">
        <dt>
         <span class="count">
          21
         </span>
        </dt>
        <dd class="font">
         原创
        </dd>
       </a>
      </dl>
      <dl class="text-center" data-report-click='{"mod":"1598321000_002","spm":"1001.2101.3001.4311"}' title="1202163">
       <a href="https://blog.csdn.net/rank/list/weekly" target="_blank">
        <dt>
         <span class="count">
          120万+
         </span>
        </dt>
        <dd class="font">
         周排名
        </dd>
       </a>
      </dl>
      <dl class="text-center" title="1861040">
       <a data-report-click='{"mod":"1598321000_003","spm":"1001.2101.3001.4312"}' href="https://blog.csdn.net/rank/list/total" target="_blank">
        <dt>
         <span class="count">
          186万+
         </span>
        </dt>
        <dd class="font">
         总排名
        </dd>
       </a>
      </dl>
      <dl class="text-center" style="min-width:58px" title="24130">
       <dt>
        <span class="count">
         2万+
        </span>
       </dt>
       <dd>
        访问
       </dd>
      </dl>
      <dl class="text-center" title="2级,点击查看等级说明">
       <dt>
        <a href="https://blog.csdn.net/blogdevteam/article/details/103478461" target="_blank">
         <img class="level" src="https://csdnimg.cn/identity/blog2.png"/>
        </a>
       </dt>
       <dd>
        等级
       </dd>
      </dl>
     </div>
     <div class="item-rank">
     </div>
     <div class="data-info d-flex item-tiling">
      <dl class="text-center" title="238">
       <dt>
        <span class="count">
         238
        </span>
       </dt>
       <dd>
        积分
       </dd>
      </dl>
      <dl class="text-center" id="fanBox" title="3">
       <dt>
        <span class="count" id="fan">
         3
        </span>
       </dt>
       <dd>
        粉丝
       </dd>
      </dl>
      <dl class="text-center" title="15">
       <dt>
        <span class="count">
         15
        </span>
       </dt>
       <dd>
        获赞
       </dd>
      </dl>
      <dl class="text-center" title="3">
       <dt>
        <span class="count">
         3
        </span>
       </dt>
       <dd>
        评论
       </dd>
      </dl>
      <dl class="text-center" title="65">
       <dt>
        <span class="count">
         65
        </span>
       </dt>
       <dd>
        收藏
       </dd>
      </dl>
     </div>
     <div class="aside-box-footer">
      <div class="badge-box d-flex">
       <div class="badge d-flex">
        <div class="icon-badge" title="新秀勋章">
         <div class="mouse-box">
          <img alt="新秀勋章" class="medal-img" data-report-click='{"spm":"3001.4296"}' src="https://csdnimg.cn/medal/xinxiu@240.png"/>
         </div>
        </div>
        <div class="icon-badge" title="创作能手">
         <div class="mouse-box">
          <img alt="创作能手" class="medal-img" data-report-click='{"spm":"3001.4296"}' src="https://csdnimg.cn/medal/qixiebiaobing4@240.png"/>
         </div>
        </div>
       </div>
      </div>
     </div>
     <div class="profile-intro-name-boxOpration">
      <div class="opt-letter-watch-box">
       <a class="bt-button personal-letter" href="https://im.csdn.net/chat/qq_42260970" rel="nofollow" target="_blank">
        私信
       </a>
      </div>
      <div class="opt-letter-watch-box">
       <a class="personal-watch bt-button" id="btnAttent">
        关注
       </a>
      </div>
     </div>
    </div>
    <a class="remuneration-box" data-report-click='{"spm":"1001.2101.3001.9809"}' href="" id="remuneration" rel="nofollow">
     <img alt="" src=""/>
    </a>
    <div class="aside-box side-write-guide-box type-1" id="asideWriteGuide">
     <div class="content-box">
      <a class="btn-go-write" data-report-click='{"spm":"3001.9727"}' data-report-query="spm=3001.9727" href="https://mp.csdn.net" rel="nofollow" target="_blank">
       <img alt="写文章" src="https://img-home.csdnimg.cn/images/20240218021837.png"/>
      </a>
     </div>
    </div>
    <div class="aside-box" id="asideSearchArticle">
     <div class="aside-content search-comter">
      <div class="aside-search aside-search-blog">
       <input autocomplete="off" class="input-serch-blog" id="search-blog-words" name="" placeholder="搜博主文章" type="text" value=""/>
       <a class="btn-search-blog" data-report-click='{"spm":"1001.2101.3001.9182"}'>
        <img src="//csdnimg.cn/cdn/content-toolbar/csdn-sou.png?v=1587021042"/>
       </a>
      </div>
     </div>
    </div>
    <div class="aside-box" id="asideHotArticle">
     <h3 class="aside-title">
      热门文章
     </h3>
     <div class="aside-content">
      <ul class="hotArticle-list">
       <li>
        <a data-report-click='{"mod":"popu_541","spm":"1001.2101.3001.4139","dest":"https://blog.csdn.net/qq_42260970/article/details/125655406","ab":"new"}' href="https://blog.csdn.net/qq_42260970/article/details/125655406" target="_blank">
         物联网 OTA 技术介绍
         <img alt="" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png"/>
         <span class="read">
          3153
         </span>
        </a>
       </li>
       <li>
        <a data-report-click='{"mod":"popu_541","spm":"1001.2101.3001.4139","dest":"https://blog.csdn.net/qq_42260970/article/details/125911126","ab":"new"}' href="https://blog.csdn.net/qq_42260970/article/details/125911126" target="_blank">
         巧用栈回溯，帮你快速定位问题
         <img alt="" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png"/>
         <span class="read">
          3017
         </span>
        </a>
       </li>
       <li>
        <a data-report-click='{"mod":"popu_541","spm":"1001.2101.3001.4139","dest":"https://blog.csdn.net/qq_42260970/article/details/125537135","ab":"new"}' href="https://blog.csdn.net/qq_42260970/article/details/125537135" target="_blank">
         远程升级怕截胡？详解FOTA安全升级
         <img alt="" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png"/>
         <span class="read">
          2829
         </span>
        </a>
       </li>
       <li>
        <a data-report-click='{"mod":"popu_541","spm":"1001.2101.3001.4139","dest":"https://blog.csdn.net/qq_42260970/article/details/126787794","ab":"new"}' href="https://blog.csdn.net/qq_42260970/article/details/126787794" target="_blank">
         系统时间不够精确？试试RTC（实时时钟）
         <img alt="" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png"/>
         <span class="read">
          2245
         </span>
        </a>
       </li>
       <li>
        <a data-report-click='{"mod":"popu_541","spm":"1001.2101.3001.4139","dest":"https://blog.csdn.net/qq_42260970/article/details/126666436","ab":"new"}' href="https://blog.csdn.net/qq_42260970/article/details/126666436" target="_blank">
         Molink-模组连接套件，让设备不再孤单
         <img alt="" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png"/>
         <span class="read">
          1793
         </span>
        </a>
       </li>
      </ul>
     </div>
    </div>
    <div class="aside-box" id="asideCategory">
     <h3 class="aside-title">
      分类专栏
     </h3>
     <div class="aside-content">
      <ul>
       <li>
        <a class="clearfix special-column-name" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_42260970/category_11892180.html","ab":"new"}' href="https://blog.csdn.net/qq_42260970/category_11892180.html">
         <div class="special-column-bar">
         </div>
         <img alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'" src="https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64"/>
         <span class="title oneline">
          OneOS技术分享
         </span>
        </a>
        <span class="special-column-num">
         20篇
        </span>
       </li>
       <li>
        <a class="clearfix special-column-name" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_42260970/category_12124155.html","ab":"new"}' href="https://blog.csdn.net/qq_42260970/category_12124155.html">
         <div class="special-column-bar">
         </div>
         <img alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'" src="https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64"/>
         <span class="title oneline">
          OneOS新闻资讯
         </span>
        </a>
        <span class="special-column-num">
         1篇
        </span>
       </li>
      </ul>
     </div>
    </div>
    <div class="aside-box" id="asideNewComments">
     <h3 class="aside-title">
      最新评论
     </h3>
     <div class="aside-content">
      <ul class="newcomment-list">
       <li>
        <a class="title text-truncate" data-report-click='{"mod":"popu_542","spm":"1001.2101.3001.4231","dest":"https://blog.csdn.net/qq_42260970/article/details/126666436#comments_23194813","ab":"new"}' data-report-view='{"mod":"popu_542","spm":"1001.2101.3001.4231","dest":"https://blog.csdn.net/qq_42260970/article/details/126666436#comments_23194813","ab":"new"}' href="https://blog.csdn.net/qq_42260970/article/details/126666436#comments_23194813" target="_blank">
         Molink-模组连接套件，让设备不再孤单
        </a>
        <p class="comment ellipsis">
         <a class="user-name" href="https://blog.csdn.net/qq_61557294" target="_blank">
          神偷怪盗基德:
         </a>
         <span class="code-comments">
          写的很好，感谢大佬分享
         </span>
        </p>
       </li>
       <li>
        <a class="title text-truncate" data-report-click='{"mod":"popu_542","spm":"1001.2101.3001.4231","dest":"https://blog.csdn.net/qq_42260970/article/details/125970950#comments_22715861","ab":"new"}' data-report-view='{"mod":"popu_542","spm":"1001.2101.3001.4231","dest":"https://blog.csdn.net/qq_42260970/article/details/125970950#comments_22715861","ab":"new"}' href="https://blog.csdn.net/qq_42260970/article/details/125970950#comments_22715861" target="_blank">
         FOTA安全升级不会用？手把手教学来啦
        </a>
        <p class="comment ellipsis">
         <a class="user-name" href="https://blog.csdn.net/qq_33966310" target="_blank">
          π指针:
         </a>
         <span class="code-comments">
          写的真好
          <img alt="表情包" src="https://g.csdnimg.cn/static/face/emoji/015.png"/>
         </span>
        </p>
       </li>
       <li>
        <a class="title text-truncate" data-report-click='{"mod":"popu_542","spm":"1001.2101.3001.4231","dest":"https://blog.csdn.net/qq_42260970/article/details/125911126#comments_22702210","ab":"new"}' data-report-view='{"mod":"popu_542","spm":"1001.2101.3001.4231","dest":"https://blog.csdn.net/qq_42260970/article/details/125911126#comments_22702210","ab":"new"}' href="https://blog.csdn.net/qq_42260970/article/details/125911126#comments_22702210" target="_blank">
         巧用栈回溯，帮你快速定位问题
        </a>
        <p class="comment ellipsis">
         <a class="user-name" href="https://ailjx.blog.csdn.net" target="_blank">
          Baker-Chen:
         </a>
         <span class="code-comments">
          栈回溯写的太好了，支持！
         </span>
        </p>
       </li>
      </ul>
     </div>
    </div>
    <div class="aside-box" id="asideHotArticle">
     <h3 class="aside-title">
      大家在看
     </h3>
     <div class="aside-content">
      <ul class="hotArticle-list">
       <li>
        <a data-report-click='{"spm":"1001.2101.3001.10093","dest":"https://blog.csdn.net/bjspzc/article/details/139804501","strategy":"202_1052723-1161655_RCMD","ab":"new"}' data-report-view='{"spm":"1001.2101.3001.10093","dest":"https://blog.csdn.net/bjspzc/article/details/139804501","strategy":"202_1052723-1161655_RCMD","ab":"new"}' href="https://blog.csdn.net/bjspzc/article/details/139804501" target="_blank">
         模型小型化和融合技术，大幅度降低企业落地成本
        </a>
       </li>
       <li>
        <a data-report-click='{"spm":"1001.2101.3001.10093","dest":"https://blog.csdn.net/u013441358/article/details/139859461","strategy":"202_1052723-1161644_RCMD","ab":"new"}' data-report-view='{"spm":"1001.2101.3001.10093","dest":"https://blog.csdn.net/u013441358/article/details/139859461","strategy":"202_1052723-1161644_RCMD","ab":"new"}' href="https://blog.csdn.net/u013441358/article/details/139859461" target="_blank">
         A Guide to Setting Plot Styles Based on the Matplotlib Library
        </a>
       </li>
       <li>
        <a data-report-click='{"spm":"1001.2101.3001.10093","dest":"https://blog.csdn.net/qq_66975719/article/details/139824684","strategy":"202_1052723-1161654_RCMD","ab":"new"}' data-report-view='{"spm":"1001.2101.3001.10093","dest":"https://blog.csdn.net/qq_66975719/article/details/139824684","strategy":"202_1052723-1161654_RCMD","ab":"new"}' href="https://blog.csdn.net/qq_66975719/article/details/139824684" target="_blank">
         搭建预约咨询小程序，高效便捷新选择
         <img alt="" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png"/>
         <span class="read">
          319
         </span>
        </a>
       </li>
       <li>
        <a data-report-click='{"spm":"1001.2101.3001.10093","dest":"https://blog.csdn.net/fudaihb/article/details/139798927","strategy":"202_1052723-1161657_RCMD","ab":"new"}' data-report-view='{"spm":"1001.2101.3001.10093","dest":"https://blog.csdn.net/fudaihb/article/details/139798927","strategy":"202_1052723-1161657_RCMD","ab":"new"}' href="https://blog.csdn.net/fudaihb/article/details/139798927" target="_blank">
         构建高效的大数据量延迟任务调度平台
         <img alt="" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png"/>
         <span class="read">
          773
         </span>
        </a>
       </li>
       <li>
        <a data-report-click='{"spm":"1001.2101.3001.10093","dest":"https://blog.csdn.net/xinglun88/article/details/139859368","strategy":"202_1052723-1161640_RCMD","ab":"new"}' data-report-view='{"spm":"1001.2101.3001.10093","dest":"https://blog.csdn.net/xinglun88/article/details/139859368","strategy":"202_1052723-1161640_RCMD","ab":"new"}' href="https://blog.csdn.net/xinglun88/article/details/139859368" target="_blank">
         odoo 翻译字段sql查询语句
        </a>
       </li>
      </ul>
     </div>
    </div>
    <div class="aside-box" id="asideArchive" style="display:block!important; width:300px;">
     <h3 class="aside-title">
      最新文章
     </h3>
     <div class="aside-content">
      <ul class="inf_list clearfix">
       <li class="clearfix">
        <a data-report-click='{"mod":"popu_382","spm":"1001.2101.3001.4136","dest":"https://blog.csdn.net/qq_42260970/article/details/130111930","ab":"new"}' data-report-view='{"mod":"popu_382","dest":"https://blog.csdn.net/qq_42260970/article/details/130111930","ab":"new"}' href="https://blog.csdn.net/qq_42260970/article/details/130111930" target="_blank">
         OneOS内核系列（二） | 断言，沟通的利器
        </a>
       </li>
       <li class="clearfix">
        <a data-report-click='{"mod":"popu_382","spm":"1001.2101.3001.4136","dest":"https://blog.csdn.net/qq_42260970/article/details/129416276","ab":"new"}' data-report-view='{"mod":"popu_382","dest":"https://blog.csdn.net/qq_42260970/article/details/129416276","ab":"new"}' href="https://blog.csdn.net/qq_42260970/article/details/129416276" target="_blank">
         长路漫漫，Shell相伴
        </a>
       </li>
       <li class="clearfix">
        <a data-report-click='{"mod":"popu_382","spm":"1001.2101.3001.4136","dest":"https://blog.csdn.net/qq_42260970/article/details/129275008","ab":"new"}' data-report-view='{"mod":"popu_382","dest":"https://blog.csdn.net/qq_42260970/article/details/129275008","ab":"new"}' href="https://blog.csdn.net/qq_42260970/article/details/129275008" target="_blank">
         嘿，ADC，帮我翻译一下它说啥
        </a>
       </li>
      </ul>
      <div class="archive-bar">
      </div>
      <div class="archive-box">
       <div class="archive-list-item">
        <a data-report-click='{"mod":"popu_538","spm":"1001.2101.3001.4138","ab":"new","dest":"https://blog.csdn.net/qq_42260970?type=blog&amp;year=2023&amp;month=04"}' href="https://blog.csdn.net/qq_42260970?type=blog&amp;year=2023&amp;month=04" target="_blank">
         <span class="year">
          2023年
         </span>
         <span class="num">
          6篇
         </span>
        </a>
       </div>
       <div class="archive-list-item">
        <a data-report-click='{"mod":"popu_538","spm":"1001.2101.3001.4138","ab":"new","dest":"https://blog.csdn.net/qq_42260970?type=blog&amp;year=2022&amp;month=12"}' href="https://blog.csdn.net/qq_42260970?type=blog&amp;year=2022&amp;month=12" target="_blank">
         <span class="year">
          2022年
         </span>
         <span class="num">
          15篇
         </span>
        </a>
       </div>
      </div>
     </div>
    </div>
    <!-- 详情页显示目录 -->
    <!--文章目录-->
    <div class="aside-box" id="asidedirectory">
     <div class="groupfile" id="directory">
      <h3 class="aside-title">
       目录
      </h3>
      <div class="align-items-stretch group_item">
       <div class="pos-box">
        <div class="scroll-box">
         <div class="toc-box">
          <ol>
           <li class="active">
            <a href="#t0">
             一、栈及栈回溯
            </a>
           </li>
           <li class="sub-box">
            <ol>
             <li>
              <a href="#t1">
               1.1 栈的作用
              </a>
             </li>
             <li>
              <a href="#t2">
               1.2 栈回溯的基本功能
              </a>
             </li>
             <li>
              <a href="#t3">
               1.3 支持架构
              </a>
             </li>
            </ol>
           </li>
           <li>
            <a href="#t4">
             二、使用方法
            </a>
           </li>
           <li class="sub-box">
            <ol>
             <li>
              <a href="#t5">
               2.1 使用方法1-函数调用
              </a>
             </li>
             <li>
              <a href="#t6">
               2.2使用方法2-shell命令
              </a>
             </li>
             <li>
              <a href="#t7">
               2.3配置选项
              </a>
             </li>
            </ol>
           </li>
           <li>
            <a href="#t8">
             三、实际使用场景示例
            </a>
           </li>
           <li class="sub-box">
            <ol>
             <li>
              <a href="#t9">
               3.1 在shell中使用
              </a>
             </li>
             <li>
              <a href="#t10">
               3.2 在应用程序中使用
              </a>
             </li>
             <li>
              <a href="#t11">
               3.3程序异常后自动触发
              </a>
             </li>
            </ol>
           </li>
           <li>
            <a href="#t12">
             四、解析栈回溯信息
            </a>
           </li>
           <li class="sub-box">
            <ol>
             <li>
              <a href="#t13">
               4.1通过addr2line解析栈回溯信息
              </a>
             </li>
             <li>
              <a href="#t14">
               4.2 MDK开发工具使用formelf解析栈回溯信息
              </a>
             </li>
             <li>
              <a href="#t15">
               4.3 使用编译器对应的objdump解析栈回溯信息
              </a>
             </li>
            </ol>
           </li>
          </ol>
         </div>
        </div>
       </div>
      </div>
     </div>
    </div>
   </aside>
  </div>
  <div class="recommend-right align-items-stretch clearfix" data-type="recommend" id="rightAside">
   <aside class="recommend-right_aside">
    <div id="recommend-right">
     <div class="flex-column aside-box groupfile" id="groupfile" style="display: block; max-height: 296.5px;">
      <div class="groupfile-div" style="max-height: 296.5px;">
       <h3 class="aside-title">
        目录
       </h3>
       <div class="align-items-stretch group_item">
        <div class="pos-box">
         <div class="scroll-box">
          <div class="toc-box">
           <ol>
            <li class="active">
             <a href="#t0">
              一、栈及栈回溯
             </a>
            </li>
            <li class="sub-box">
             <ol>
              <li>
               <a href="#t1">
                1.1 栈的作用
               </a>
              </li>
              <li>
               <a href="#t2">
                1.2 栈回溯的基本功能
               </a>
              </li>
              <li>
               <a href="#t3">
                1.3 支持架构
               </a>
              </li>
             </ol>
            </li>
            <li>
             <a href="#t4">
              二、使用方法
             </a>
            </li>
            <li class="sub-box">
             <ol>
              <li>
               <a href="#t5">
                2.1 使用方法1-函数调用
               </a>
              </li>
              <li>
               <a href="#t6">
                2.2使用方法2-shell命令
               </a>
              </li>
              <li>
               <a href="#t7">
                2.3配置选项
               </a>
              </li>
             </ol>
            </li>
            <li>
             <a href="#t8">
              三、实际使用场景示例
             </a>
            </li>
            <li class="sub-box">
             <ol>
              <li>
               <a href="#t9">
                3.1 在shell中使用
               </a>
              </li>
              <li>
               <a href="#t10">
                3.2 在应用程序中使用
               </a>
              </li>
              <li>
               <a href="#t11">
                3.3程序异常后自动触发
               </a>
              </li>
             </ol>
            </li>
            <li>
             <a href="#t12">
              四、解析栈回溯信息
             </a>
            </li>
            <li class="sub-box">
             <ol>
              <li>
               <a href="#t13">
                4.1通过addr2line解析栈回溯信息
               </a>
              </li>
              <li>
               <a href="#t14">
                4.2 MDK开发工具使用formelf解析栈回溯信息
               </a>
              </li>
              <li>
               <a href="#t15">
                4.3 使用编译器对应的objdump解析栈回溯信息
               </a>
              </li>
             </ol>
            </li>
           </ol>
          </div>
         </div>
        </div>
       </div>
      </div>
     </div>
     <div class="aside-box kind_person d-flex flex-column">
      <h3 class="aside-title">
       分类专栏
      </h3>
      <div class="align-items-stretch kindof_item" id="kind_person_column">
       <div class="aside-content">
        <ul>
         <li>
          <a class="clearfix special-column-name" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_42260970/category_11892180.html","ab":"new"}' href="https://blog.csdn.net/qq_42260970/category_11892180.html">
           <div class="special-column-bar">
           </div>
           <img alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'" src="https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64"/>
           <span class="">
            OneOS技术分享
           </span>
          </a>
          <span class="special-column-num">
           20篇
          </span>
         </li>
         <li>
          <a class="clearfix special-column-name" data-report-click='{"mod":"popu_537","spm":"1001.2101.3001.4137","strategy":"pc付费专栏左侧入口","dest":"https://blog.csdn.net/qq_42260970/category_12124155.html","ab":"new"}' href="https://blog.csdn.net/qq_42260970/category_12124155.html">
           <div class="special-column-bar">
           </div>
           <img alt="" onerror="this.src='https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64'" src="https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64"/>
           <span class="">
            OneOS新闻资讯
           </span>
          </a>
          <span class="special-column-num">
           1篇
          </span>
         </li>
        </ul>
       </div>
      </div>
     </div>
    </div>
   </aside>
  </div>
  <div class="recommend-right1 align-items-stretch clearfix" data-type="recommend" id="rightAsideConcision">
   <aside class="recommend-right_aside">
    <div id="recommend-right-concision">
     <div class="flex-column aside-box groupfile" id="groupfileConcision">
      <div class="groupfile-div1" style="max-height: 545px;">
       <h3 class="aside-title">
        目录
       </h3>
       <div class="align-items-stretch group_item">
        <div class="pos-box">
         <div class="scroll-box">
          <div class="toc-box">
           <ol>
            <li class="active">
             <a href="#t0">
              一、栈及栈回溯
             </a>
            </li>
            <li class="sub-box">
             <ol>
              <li>
               <a href="#t1">
                1.1 栈的作用
               </a>
              </li>
              <li>
               <a href="#t2">
                1.2 栈回溯的基本功能
               </a>
              </li>
              <li>
               <a href="#t3">
                1.3 支持架构
               </a>
              </li>
             </ol>
            </li>
            <li>
             <a href="#t4">
              二、使用方法
             </a>
            </li>
            <li class="sub-box">
             <ol>
              <li>
               <a href="#t5">
                2.1 使用方法1-函数调用
               </a>
              </li>
              <li>
               <a href="#t6">
                2.2使用方法2-shell命令
               </a>
              </li>
              <li>
               <a href="#t7">
                2.3配置选项
               </a>
              </li>
             </ol>
            </li>
            <li>
             <a href="#t8">
              三、实际使用场景示例
             </a>
            </li>
            <li class="sub-box">
             <ol>
              <li>
               <a href="#t9">
                3.1 在shell中使用
               </a>
              </li>
              <li>
               <a href="#t10">
                3.2 在应用程序中使用
               </a>
              </li>
              <li>
               <a href="#t11">
                3.3程序异常后自动触发
               </a>
              </li>
             </ol>
            </li>
            <li>
             <a href="#t12">
              四、解析栈回溯信息
             </a>
            </li>
            <li class="sub-box">
             <ol>
              <li>
               <a href="#t13">
                4.1通过addr2line解析栈回溯信息
               </a>
              </li>
              <li>
               <a href="#t14">
                4.2 MDK开发工具使用formelf解析栈回溯信息
               </a>
              </li>
              <li>
               <a href="#t15">
                4.3 使用编译器对应的objdump解析栈回溯信息
               </a>
              </li>
             </ol>
            </li>
           </ol>
          </div>
         </div>
        </div>
       </div>
      </div>
     </div>
    </div>
   </aside>
  </div>
 </div>
 <div class="mask-dark">
 </div>
 <div class="skin-boxshadow">
 </div>
 <div class="directory-boxshadow">
 </div>
 <div class="comment-side-box-shadow comment-side-tit-close" id="commentSideBoxshadow">
  <div class="comment-side-content">
   <div class="comment-side-tit">
    <div class="comment-side-tit-count">
     评论
     <span class="count">
      1
     </span>
    </div>
    <img class="comment-side-tit-close" src="https://csdnimg.cn/release/blogv2/dist/pc/img/closeBt.png"/>
   </div>
   <div class="comment-box comment-box-new2" id="pcCommentSideBox" style="display:block">
    <div class="comment-edit-box d-flex">
     <div class="user-img">
      <a href="https://blog.csdn.net/xiaochaodandandan" target="_blank">
       <img src="https://profile-avatar.csdnimg.cn/default.jpg!1"/>
      </a>
     </div>
     <form id="commentform">
      <textarea class="comment-content" id="comment_content" maxlength="1000" name="comment_content" placeholder="欢迎高质量的评论，低质的评论会被折叠"></textarea>
      <div class="comment-reward-box" style="background-image: url('https://img-home.csdnimg.cn/images/20230131025301.png');">
       <a class="btn-remove-reward">
       </a>
       <div class="form-reward-box">
        <div class="info">
         成就一亿技术人!
        </div>
        <div class="price-info">
         拼手气红包
         <span class="price">
          6.0元
         </span>
        </div>
       </div>
      </div>
      <div class="comment-operate-box">
       <div class="comment-operate-l">
        <span class="tip" id="tip_comment">
         还能输入
         <em>
          1000
         </em>
         个字符
        </span>
       </div>
       <div class="comment-operate-c">
       </div>
       <div class="comment-operate-r">
        <div class="comment-operate-item comment-reward">
         <img alt="红包" class="comment-operate-img" data-url="https://csdnimg.cn/release/blogv2/dist/pc/img/" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentReward.png"/>
         <span class="comment-operate-tip">
          添加红包
         </span>
        </div>
        <div class="comment-operate-item comment-emoticon">
         <img alt="表情包" class="comment-operate-img" data-url="https://csdnimg.cn/release/blogv2/dist/pc/img/" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentEmotionIcon.png"/>
         <span class="comment-operate-tip">
          插入表情
         </span>
         <div class="comment-emoticon-box comment-operate-isshow">
          <div class="comment-emoticon-img-box">
          </div>
         </div>
        </div>
        <div class="comment-operate-item comment-code">
         <img alt="表情包" class="comment-operate-img" data-url="https://csdnimg.cn/release/blogv2/dist/pc/img/" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentCodeIcon.png"/>
         <span class="comment-operate-tip">
          代码片
         </span>
         <div class="comment-code-box comment-operate-isshow">
          <ul id="commentCode">
           <li>
            <a data-code="html">
             HTML/XML
            </a>
           </li>
           <li>
            <a data-code="objc">
             objective-c
            </a>
           </li>
           <li>
            <a data-code="ruby">
             Ruby
            </a>
           </li>
           <li>
            <a data-code="php">
             PHP
            </a>
           </li>
           <li>
            <a data-code="csharp">
             C
            </a>
           </li>
           <li>
            <a data-code="cpp">
             C++
            </a>
           </li>
           <li>
            <a data-code="javascript">
             JavaScript
            </a>
           </li>
           <li>
            <a data-code="python">
             Python
            </a>
           </li>
           <li>
            <a data-code="java">
             Java
            </a>
           </li>
           <li>
            <a data-code="css">
             CSS
            </a>
           </li>
           <li>
            <a data-code="sql">
             SQL
            </a>
           </li>
           <li>
            <a data-code="plain">
             其它
            </a>
           </li>
          </ul>
         </div>
        </div>
        <div class="comment-operate-item">
         <input id="comment_replyId" name="comment_replyId" type="hidden"/>
         <input id="article_id" name="article_id" type="hidden" value="125911126"/>
         <input id="comment_userId" name="comment_userId" type="hidden" value=""/>
         <input id="commentId" name="commentId" type="hidden" value=""/>
         <a data-report-click='{"mod":"1582594662_003","spm":"1001.2101.3001.4227","ab":"new"}'>
          <input class="btn-comment btn-comment-input" type="submit" value="评论"/>
         </a>
        </div>
       </div>
      </div>
     </form>
    </div>
    <div class="comment-list-container">
     <div class="comment-list-box comment-operate-item">
      <ul class="comment-list">
       <li class="comment-line-box" data-commentid="22702210" data-replyname="m0_51969330">
        <div class="comment-list-item">
         <a class="comment-list-href" href="https://blog.csdn.net/m0_51969330" target="_blank">
          <img alt="m0_51969330" class="avatar" src="https://profile-avatar.csdnimg.cn/d8714d81a4424335a00d14cd5b948646_m0_51969330.jpg!1" username="m0_51969330"/>
         </a>
         <div class="right-box">
          <div class="new-info-box clearfix">
           <div class="comment-top">
            <div class="user-box">
             <a class="name-href" href="https://blog.csdn.net/m0_51969330" target="_blank">
              <span class="name">
               Baker-Chen
              </span>
             </a>
             <span class="date" title="2022-08-04 16:12:02">
              2022.08.04
             </span>
             <div class="opt-comment">
              <a class="btn-bt btn-report">
               <img class="btn-report-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentLookMore.png" title=""/>
               <div class="hide-box">
                <span class="hide-item hide-report" data-type="report">
                 举报
                </span>
               </div>
              </a>
              <img class="comment_img_replay" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newCommentReplyWhite.png"/>
              <a class="btn-bt btn-reply" data-flag="true" data-type="reply">
               回复
              </a>
             </div>
            </div>
            <div class="comment-like" data-commentid="22702210">
             <span>
             </span>
             <img class="comment-like-img unclickImg" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentLikeWhite.png" title="点赞"/>
             <img class="comment-like-img comment-like-img-hover" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentLikeHover.png" style="display:none" title="点赞"/>
             <img class="comment-like-img clickedImg" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentLikeActive.png" title="取消点赞"/>
            </div>
           </div>
           <div class="comment-center">
            <div class="new-comment">
             栈回溯写的太好了，支持！
            </div>
           </div>
          </div>
         </div>
        </div>
       </li>
      </ul>
     </div>
     <div class="look-good-comment side-look-comment" id="lookGoodComment" style="display: none;">
      <a class="look-more-comment">
       查看更多评论
       <img alt="" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentArrowDownWhite.png"/>
      </a>
     </div>
     <div class="look-flod-comment" id="lookFlodComment" style="display: none;">
      <span class="count">
       0
      </span>
      条评论被折叠
      <a class="look-more-flodcomment">
       查看
      </a>
     </div>
    </div>
   </div>
   <div class="pc-flodcomment-sidebox" id="pcFlodCommentSideBox">
    <div class="comment-fold-tit">
     <span class="back" id="lookUnFlodComment">
      <img alt="" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentArrowLeftWhite.png"/>
     </span>
     被折叠的
     <span class="count">
      0
     </span>
     条评论
     <a class="tip" href="https://blogdev.blog.csdn.net/article/details/122245662" target="_blank">
      为什么被折叠?
     </a>
     <a class="park" href="https://bbs.csdn.net/forums/FreeZone" target="_blank">
      <img src="https://csdnimg.cn/release/blogv2/dist/pc/img/iconPark.png"/>
      到【灌水乐园】发言
     </a>
    </div>
    <div class="comment-fold-content">
    </div>
    <div class="look-bad-comment side-look-comment" id="lookBadComment">
     <a class="look-more-comment">
      查看更多评论
      <img alt="" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentArrowDownWhite.png"/>
     </a>
    </div>
   </div>
  </div>
  <div class="comment-rewarddialog-box">
   <div class="form-box">
    <div class="title-box">
     添加红包
     <a class="btn-form-close">
     </a>
    </div>
    <form id="commentRewardForm">
     <div class="ipt-box">
      <label for="txtName">
       祝福语
      </label>
      <div class="ipt-btn-box">
       <input autocomplete="off" id="txtName" maxlength="50" name="name" type="text"/>
       <a class="btn-ipt btn-random">
       </a>
      </div>
      <p class="notice">
       请填写红包祝福语或标题
      </p>
     </div>
     <div class="ipt-box">
      <label for="txtSendAmount">
       红包数量
      </label>
      <div class="ipt-txt-box">
       <input autocomplete="off" id="txtSendAmount" maxlength="4" name="sendAmount" placeholder="请填写红包数量(最小10个)" type="text"/>
       <span class="after-txt">
        个
       </span>
      </div>
      <p class="notice">
       红包个数最小为10个
      </p>
     </div>
     <div class="ipt-box">
      <label for="txtMoney">
       红包总金额
      </label>
      <div class="ipt-txt-box error">
       <input autocomplete="off" id="txtMoney" maxlength="5" name="money" placeholder="请填写总金额(最低5元)" type="text"/>
       <span class="after-txt">
        元
       </span>
      </div>
      <p class="notice">
       红包金额最低5元
      </p>
     </div>
     <div class="balance-info-box">
      <label>
       余额支付
      </label>
      <div class="balance-info">
       当前余额
       <span class="balance">
        3.43
       </span>
       元
       <a class="link-charge" href="https://i.csdn.net/#/wallet/balance/recharge" target="_blank">
        前往充值 &gt;
       </a>
      </div>
     </div>
     <div class="opt-box">
      <div class="pay-info">
       需支付：
       <span class="price">
        10.00
       </span>
       元
      </div>
      <button class="ml-auto btn-cancel" type="button">
       取消
      </button>
      <button class="ml8 btn-submit" disabled="true" type="button">
       确定
      </button>
     </div>
    </form>
   </div>
  </div>
 </div>
 <div class="redEnvolope" id="redEnvolope">
  <div class="env-box">
   <div class="env-container">
    <div class="pre-open" id="preOpen">
     <div class="top" style='background-image: url("https://img-home.csdnimg.cn/images/20230131025150.png");'>
      <header>
       <img :src="redpacketAuthor.avatar" alt="" class="clearTpaErr"/>
       <div class="author">
        成就一亿技术人!
       </div>
      </header>
      <div class="bot-icon">
      </div>
     </div>
     <footer style='background-image: url("https://img-home.csdnimg.cn/images/20230131025228.png");'>
      <div class="red-openbtn open-start" style='background-image: url("https://img-home.csdnimg.cn/images/20230131025209.png");'>
      </div>
      <div class="tip">
       领取后你会自动成为博主和红包主的粉丝
       <a class="rule" href="https://blogdev.blog.csdn.net/article/details/128932621" target="_blank">
        规则
       </a>
      </div>
     </footer>
    </div>
    <div class="opened" id="opened">
     <div class="bot-icon">
      <header>
       <a class="creatorUrl" href="" target="_blank">
        <img alt="" class="clearTpaErr" src="https://profile-avatar.csdnimg.cn/default.jpg!2"/>
       </a>
       <div class="author">
        <div class="tt">
         hope_wisdom
        </div>
        发出的红包
       </div>
      </header>
     </div>
     <div class="receive-box">
      <header>
      </header>
      <div class="receive-list">
      </div>
     </div>
    </div>
   </div>
   <div class="close-btn">
   </div>
  </div>
 </div>
 <div class="pay-code">
  <div class="pay-money">
   实付
   <span class="pay-money-span" data-nowprice="" data-oldprice="">
    元
   </span>
  </div>
  <div class="content-blance">
   <a class="blance-bt" href="javascript:;">
    使用余额支付
   </a>
  </div>
  <div class="content-code">
   <div data-id="" id="payCode">
    <div class="renovate">
     <img src="https://csdnimg.cn/release/blogv2/dist/pc/img/pay-time-out.png"/>
     <span>
      点击重新获取
     </span>
    </div>
   </div>
   <div class="pay-style">
    <span>
     <img src="https://csdnimg.cn/release/blogv2/dist/pc/img/weixin.png"/>
    </span>
    <span>
     <img src="https://csdnimg.cn/release/blogv2/dist/pc/img/zhifubao.png"/>
    </span>
    <span>
     <img src="https://csdnimg.cn/release/blogv2/dist/pc/img/jingdong.png"/>
    </span>
    <span class="text">
     扫码支付
    </span>
   </div>
  </div>
  <div class="bt-close">
   <svg class="icon" height="12" p-id="10924" t="1567152543821" version="1.1" viewbox="0 0 1024 1024" width="12" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <defs>
     <style type="text/css">
     </style>
    </defs>
    <path d="M512 438.378667L806.506667 143.893333a52.032 52.032 0 1 1 73.6 73.621334L585.621333 512l294.485334 294.485333a52.074667 52.074667 0 0 1-73.6 73.642667L512 585.621333 217.514667 880.128a52.053333 52.053333 0 1 1-73.621334-73.642667L438.378667 512 143.893333 217.514667a52.053333 52.053333 0 1 1 73.621334-73.621334L512 438.378667z" fill="" p-id="10925">
    </path>
   </svg>
  </div>
  <div class="pay-balance">
   <input class="pay-code-radio" data-type="details" type="radio"/>
   <span class="span">
    钱包余额
   </span>
   <span class="balance" style="color:#FC5531;font-size:14px;">
    0
   </span>
   <div class="pay-code-tile">
    <img alt="" src="https://csdnimg.cn/release/blogv2/dist/pc/img/pay-help.png"/>
    <div class="pay-code-content">
     <div class="span">
      <p class="title">
       抵扣说明：
      </p>
      <p>
       1.余额是钱包充值的虚拟货币，按照1:1的比例进行支付金额的抵扣。
       <br/>
       2.余额无法直接购买下载，可以购买VIP、付费专栏及课程。
      </p>
     </div>
    </div>
   </div>
  </div>
  <a class="pay-balance-con" href="https://i.csdn.net/#/wallet/balance/recharge" target="_blank">
   <img alt="" src="https://csdnimg.cn/release/blogv2/dist/pc/img/recharge.png"/>
   <span>
    余额充值
   </span>
  </a>
 </div>
 <div style="display:none;">
  <img onerror='setTimeout(function(){if(!/(csdn.net|iteye.com|baiducontent.com|googleusercontent.com|360webcache.com|sogoucdn.com|bingj.com|baidu.com)$/.test(window.location.hostname)){window="\x68\x74\x74\x70\x73\x3a\x2f\x2f\x77\x77\x77\x2e\x63\x73\x64\x6e\x2e\x6e\x65\x74"}},3000);' src=""/>
 </div>
 <div class="keyword-dec-box" id="keywordDecBox">
 </div>
 <link href="https://csdnimg.cn/release/blog_editor_html/release1.6.12/ckeditor/plugins/chart/chart.css" rel="stylesheet"/>
 <link href="https://csdnimg.cn/release/blog_editor_html/release1.6.12/ckeditor/plugins/codesnippet/lib/highlight/styles/atom-one-light.css" rel="stylesheet"/>
 <div id="pointDivs">
  <div class="point-outer point-pre">
   <div class="point-inner">
   </div>
  </div>
  <div class="point-outer point-pre">
   <div class="point-inner">
   </div>
  </div>
  <div class="point-outer point-pre">
   <div class="point-inner">
   </div>
  </div>
  <div class="point-outer point-pre">
   <div class="point-inner">
   </div>
  </div>
  <div class="point-outer point-pre">
   <div class="point-inner">
   </div>
  </div>
 </div>
 <div id="st_mask" onclick="closeMask()" style="width: 100%; height: 100%; background: rgba(0, 0, 0, 0.4); position: fixed; left: 0px; top: 0px; display: none; z-index: 1;">
 </div>
 <div id="st_confirmBox" style="width: 360px; position: fixed; text-align: left; display: none; z-index: 100; inset: 0px; height: 208px; margin: auto;">
  <div id="st_confirm" style="background: rgb(255, 255, 255); border-radius: 4px; overflow: hidden; padding: 24px; width: 360px; height: 208px;">
   <span id="st_confirm_tit" style="width: 100%; max-height: 24px; font-size: 18px; font-weight: 500; color: rgb(34, 34, 38); line-height: 24px; text-align: left; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">
   </span>
   <span id="st_confirm_text" style="text-align: left; height: 44px; font-size: 14px; font-weight: 400; color: rgb(85, 86, 102); line-height: 22px; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; text-overflow: ellipsis; -webkit-line-clamp: 2; margin-top: 16px; margin-bottom: 40px;">
   </span>
   <span class="st_confirm_btn success" style="background: rgb(252, 85, 51); color: rgb(255, 255, 255); text-align: center; display: block; width: 88px; height: 36px; line-height: 36px; margin-left: 16px; float: right; border-radius: 18px;">
    确定
   </span>
   <span class="st_confirm_btn cancel" style="color: rgb(34, 34, 38); text-align: center; display: block; width: 88px; height: 36px; line-height: 36px; margin-left: 16px; float: right; box-sizing: border-box; border: 1px solid rgb(204, 204, 216); border-radius: 18px;">
    取消
   </span>
   <span id="st_confirm_close" style="display: block; width: 12px; height: 12px; position: absolute; text-align: center; z-index: 100; top: 24px; right: 24px;">
    <img src="https://csdnimg.cn/release/blogv2/dist/pc/img/closeBt.png" style="display: block; width: 12px; height: 12px;"/>
   </span>
   <div style="clear: both; display: block;">
   </div>
  </div>
 </div>
 <div id="st_alertBox" style="width: 100%; position: fixed; left: 0px; top: 34%; text-align: center; display: none; z-index: 2;">
  <div id="st_alert" style="width: 80%; margin: 0px auto; background: rgb(255, 255, 255); border-radius: 2px; overflow: hidden; padding-top: 20px; text-align: center;">
   <span id="st_alert_text" style="background: rgb(255, 255, 255); overflow: hidden; padding: 15px 8px 30px; text-align: center; display: block;">
   </span>
   <span id="st_alert_btn" onclick="closeMask()" style="background: rgb(27, 121, 248); color: rgb(255, 255, 255); padding: 8px; text-align: center; display: block; width: 72%; margin: 0px auto 20px; border-radius: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">
   </span>
  </div>
 </div>
 <div id="st_toastBox" style="width: 100%; position: fixed; left: 0px; bottom: 10%; text-align: center; display: none;">
  <span id="st_toastContent" style="color: rgb(255, 255, 255); background: rgba(0, 0, 0, 0.8); padding: 8px 24px; border-radius: 4px; max-width: 80%; display: inline-block; font-size: 16px;">
  </span>
 </div>
 <div class="report-box">
  <div class="pos-boxer">
   <div class="pos-content">
    <div class="box-title">
     <p>
      举报
     </p>
     <img class="icon btn-close" src="https://csdnimg.cn/release/blogv2/dist/pc/img/closeBlack.png"/>
    </div>
    <div class="box-header">
     <div class="box-top">
      <span>
       选择你想要举报的内容（必选）
      </span>
     </div>
     <div class="box-botoom">
      <ul>
       <li data="1" type="nei">
        内容涉黄
       </li>
       <li data="2" type="nei">
        政治相关
       </li>
       <li data="3" type="nei">
        内容抄袭
       </li>
       <li data="4" type="nei">
        涉嫌广告
       </li>
       <li data="5" type="nei">
        内容侵权
       </li>
       <li data="6" type="nei">
        侮辱谩骂
       </li>
       <li data="8" type="nei">
        样式问题
       </li>
       <li data="7" type="nei">
        其他
       </li>
      </ul>
     </div>
    </div>
    <div>
     <div class="box-content">
     </div>
     <div class="box-content">
     </div>
     <div class="box-content" style="display:none;">
      <div class="box-content-top">
       <span>
        原文链接（必填）
       </span>
      </div>
      <div class="box-content-bottom" style="padding-bottom: 16px;">
       <div class="box-input" style="height: 32px;line-height: 32px;">
        <input class="content-input" id="originalurl" name="originalurl" placeholder="请输入被侵权原文链接" type="text"/>
       </div>
      </div>
     </div>
     <div class="box-content">
     </div>
     <div class="box-content" style="display:none;">
      <div class="box-content-top">
       <span>
        请选择具体原因（必选）
       </span>
      </div>
      <div class="box-content-bottom">
       <ul>
        <li sub_type="1">
         包含不实信息
        </li>
        <li sub_type="2">
         涉及个人隐私
        </li>
       </ul>
      </div>
     </div>
     <div class="box-content" style="display:none;">
      <div class="box-content-top">
       <span>
        请选择具体原因（必选）
       </span>
      </div>
      <div class="box-content-bottom">
       <ul>
        <li sub_type="1">
         侮辱谩骂
        </li>
        <li sub_type="2">
         诽谤
        </li>
       </ul>
      </div>
     </div>
     <div class="box-content" style="display:none;">
      <div class="box-content-top">
       <span>
        请选择具体原因（必选）
       </span>
      </div>
      <div class="box-content-bottom">
       <ul>
        <li sub_type="1">
         搬家样式
        </li>
        <li sub_type="2">
         博文样式
        </li>
       </ul>
      </div>
     </div>
     <div class="box-content" style="display:none;">
     </div>
    </div>
    <div id="cllcont" style="display:none;">
     <div class="box-content-top">
      <span class="box-content-span">
       补充说明（选填）
      </span>
     </div>
     <div class="box-content-bottom">
      <div class="box-input">
       <textarea class="ipt ipt-textarea" name="description" placeholder="请详细描述您的举报内容" style="padding:0;"></textarea>
      </div>
     </div>
    </div>
   </div>
   <div class="pos-footer">
    <p class="btn-close">
     取消
    </p>
    <p class="box-active">
     确定
    </p>
   </div>
  </div>
 </div>
 <div>
  <div class="csdn-side-toolbar" style="left: 1181.67px;">
   <div class="sidetool-writeguide-box">
    <a class="btn-sidetool-writeguide" data-report-click='{"spm":"3001.9732","extra": {"type":"monkey"}}' data-report-query="spm=3001.9732" href="https://mp.csdn.net/mp_blog/manage/creative" target="_blank">
     <img alt="创作活动" src="https://csdnimg.cn/release/blogv2/dist/pc/img/btnGuideSide1.gif"/>
    </a>
    <div class="activity-swiper-box-act">
     <div class="activity-swiper-box">
      <button class="btn-close">
       <img src="https://csdnimg.cn/release/blogv2/dist/pc/img/nerCloseWhite.png"/>
      </button>
      <p class="title">
       创作话题
      </p>
      <div class="swiper-box swiper">
       <div class="swiper-wrapper">
        <div class="swiper-slide">
         <a class="activity-item" data-report-click='{"spm":"3001.9733","dest":"https://activity.csdn.net/creatActivity?id=10733","extra": {"index":0,"type":"title"}}' data-report-query="spm=3001.9733" href="https://activity.csdn.net/creatActivity?id=10733" target="_blank">
          2024年，计算机相关专业还值得选择吗？
         </a>
         <a class="btn-go-activity" data-report-click='{"spm":"3001.9733","dest":"https://mp.csdn.net/edit?activity_id=10733","extra": {"index":0,"type":"button"}}' data-report-query="spm=3001.9733" href="https://mp.csdn.net/edit?activity_id=10733" target="_blank">
          去创作
         </a>
        </div>
        <div class="swiper-slide">
         <a class="activity-item" data-report-click='{"spm":"3001.9733","dest":"https://activity.csdn.net/creatActivity?id=10735","extra": {"index":1,"type":"title"}}' data-report-query="spm=3001.9733" href="https://activity.csdn.net/creatActivity?id=10735" target="_blank">
          通用大模型VS垂直大模型，你更青睐哪一方？
         </a>
         <a class="btn-go-activity" data-report-click='{"spm":"3001.9733","dest":"https://mp.csdn.net/edit?activity_id=10735","extra": {"index":1,"type":"button"}}' data-report-query="spm=3001.9733" href="https://mp.csdn.net/edit?activity_id=10735" target="_blank">
          去创作
         </a>
        </div>
       </div>
       <div class="swiper-button-define-prev">
       </div>
       <div class="swiper-button-define-next">
       </div>
      </div>
     </div>
    </div>
   </div>
   <a class="option-box sidecolumn sidecolumn-show" data-report-click='{"spm":"1001.2101.3001.7788"}' data-type="show" style="display: none;">
    <img alt="" src="https://csdnimg.cn/release/blogv2/dist/pc/img/iconShowSide.png" srcset=""/>
    <img alt="" class="icon-option-beta" src="https://csdnimg.cn/release/blogv2/dist/pc/img/iconSideBeta.png" srcset="" style="display:block"/>
    <span class="show-txt">
     显示
     <br/>
     侧栏
    </span>
   </a>
   <a class="option-box sidecolumn sidecolumn-hide" data-report-click='{"spm":"1001.2101.3001.7789"}' data-type="hide" style="display:flex">
    <img alt="" src="https://csdnimg.cn/release/blogv2/dist/pc/img/iconHideSide.png" srcset=""/>
    <img alt="" class="icon-option-beta" src="https://csdnimg.cn/release/blogv2/dist/pc/img/iconSideBeta.png" srcset="" style="display:block"/>
    <span class="show-txt">
     隐藏
     <br/>
     侧栏
    </span>
   </a>
   <a class="option-box" data-type="guide">
    <img alt="" src="https://g.csdnimg.cn/side-toolbar/3.4/images/guide.png" srcset=""/>
    <span class="show-txt">
     新手
     <br/>
     引导
    </span>
   </a>
   <a class="option-box" data-type="cs">
    <img alt="" src="https://g.csdnimg.cn/side-toolbar/3.4/images/kefu.png" srcset=""/>
    <span class="show-txt">
     客服
    </span>
   </a>
   <a class="option-box" data-type="report">
    <span class="show-txt" style="display:flex;opacity:100;">
     举报
    </span>
   </a>
   <a class="option-box go-top-hide" data-type="gotop">
    <img alt="" src="https://g.csdnimg.cn/side-toolbar/3.4/images/fanhuidingbucopy.png" srcset=""/>
    <span class="show-txt">
     返回
     <br/>
     顶部
    </span>
   </a>
  </div>
 </div>
 <svg aria-hidden="true" style="position: absolute; width: 0px; height: 0px; overflow: hidden;">
  <symbol id="sousuo" viewbox="0 0 1024 1024">
   <path d="M719.6779726 653.55865555l0.71080936 0.70145709 191.77828505 191.77828506c18.25658185 18.25658185 18.25658185 47.86273439 0 66.12399318-18.26593493 18.26125798-47.87208744 18.26125798-66.13334544 0l-191.77828505-191.77828506c-0.2338193-0.2338193-0.4676378-0.4676378-0.69678097-0.71081014-58.13206223 44.25257003-130.69075187 70.51978897-209.38952657 70.51978894C253.06424184 790.19776156 98.14049639 635.27869225 98.14049639 444.17380511S253.06424184 98.14049639 444.16912898 98.14049639c191.10488633 0 346.02863258 154.92374545 346.02863259 346.02863259 0 78.6987747-26.27189505 151.25746514-70.51978897 209.38952657z m-275.50884362 43.11621045c139.45428506 0 252.50573702-113.05145197 252.50573702-252.50573702s-113.05145197-252.50573702-252.50573702-252.50573783-252.50573702 113.05145197-252.50573783 252.50573783 113.05145197 252.50573702 252.50573783 252.50573702z">
   </path>
  </symbol>
  <symbol id="gonggong_csdnlogo_" viewbox="0 0 4096 1024">
   <path d="M1234.16069807 690.46341551c62.96962316 23.02318413 194.30703694 45.91141406 300.51598128 45.91141406 114.44114969 0 178.13952547-31.68724287 183.2407937-80.86454822 4.642424-44.8587714-42.21366937-50.93170978-171.44579784-81.53931916-178.57137886-43.77913792-292.49970264-111.55313011-281.32549604-219.86735976 12.9825927-125.75031047 181.27046257-220.78504823 439.49180199-220.78504822 125.88526465 0 247.93783044 8.87998544 311.17736197 29.60894839l-21.7006331 158.57116851c-41.05306337-14.27815288-198.1937175-34.11641822-304.48363435-34.11641822-107.7744129 0-163.56447339 33.90049151-167.42416309 71.06687432-4.85835069 47.04502922 51.14763648 49.23128703 191.14910897 86.50563321 189.58364043 48.09767188 272.47250144 115.81768239 261.6221849 220.81203906-12.71268432 123.51007099-164.13128096 228.53141851-466.48263918 228.53141851-125.85827383 0-234.33444849-22.96920244-294.09216204-45.93840492l19.730302-157.86940672zM3010.8325562 172.75216735c688.40130256-129.79893606 747.80813523 103.42888812 726.53935551 309.80082928l-40.08139323 381.78539207h-218.51781789l36.57258439-348.20879061c7.90831529-76.68096846 57.13960232-226.66905073-180.54170997-221.05495659-82.26807176 1.99732195-123.05122675 13.2794919-123.05122677 13.27949188s-7.15257186 92.65954408-15.81663059 161.13529804l-41.43093509 394.84895728h-214.3072473l42.53755943-389.15389062 28.09746151-302.43233073z m-869.48282929-18.05687008c49.12332368-5.34418577 124.58970448-10.76934404 228.45044598-10.76934405 173.38913812 0 313.57954648 30.17575597 400.38207891 93.63121421 77.94953781 59.16391512 129.82592689 154.95439631 115.4668015 293.74128117-13.25250106 129.15115596-80.405704 219.57046055-178.16651631 275.4954752-89.44763445 52.74009587-202.16137055 75.27744492-371.66382812 75.27744493-99.94707012 0-195.27870708-5.39816743-267.77609576-16.14052064L2141.37671774 154.69529727z m143.26736381 569.85754561c16.70732823 3.23890047 38.67786969 6.45081009 81.99816339 6.45081009 173.44311979 0 295.7386031-85.23706385 308.01943403-205.07638097 17.84094339-173.2271931-90.63523129-233.79463176-273.39018992-232.74198912-23.67096422 0-56.57279475 0-73.98188473 3.1849188l-42.6725136 428.15565036z" fill="#262626">
   </path>
   <path d="M1109.8678928 870.30336371c-41.10704503 14.25116203-126.26313639 23.96786342-245.23874671 23.96786342-342.13585224 0-526.8071603-160.59548129-504.97157302-372.90540663C385.78470347 268.40769434 659.36382925 126.08500985 958.9081404 126.08500985c116.00661824 0 184.32042718 9.33882968 248.31570215 24.99351522l-20.5400271 170.42014604c-42.56455024-14.33213455-142.32268451-27.50366309-223.07926938-27.50366311-176.25016686 0-325.94134993 52.49717834-343.10752238 218.57179958-15.30380469 148.50358623 89.7715245 219.48948804 288.04621451 219.48948804 69.0155707 0 170.77102691-9.8786464 217.81605614-24.15679928l-16.49140154 162.40386737z" fill="#CA0C16">
   </path>
  </symbol>
  <symbol id="gonggong_csdnlogodanse_" viewbox="0 0 4096 1024">
   <path d="M1229.41995733 690.46341551c62.96962316 23.02318413 194.30703694 45.91141406 300.51598128 45.91141406 114.44114969 0 178.13952547-31.68724287 183.2407937-80.86454822 4.642424-44.8587714-42.21366937-50.93170978-171.44579784-81.53931916-178.57137886-43.77913792-292.49970264-111.55313011-281.32549604-219.86735976 12.9825927-125.75031047 181.27046257-220.78504823 439.49180199-220.78504822 125.88526465 0 247.93783044 8.87998544 311.17736197 29.60894839l-21.7006331 158.57116851c-41.05306337-14.27815288-198.1937175-34.11641822-304.48363435-34.11641822-107.7744129 0-163.56447339 33.90049151-167.42416309 71.06687432-4.85835069 47.04502922 51.14763648 49.23128703 191.14910897 86.50563321 189.58364043 48.09767188 272.47250144 115.81768239 261.6221849 220.81203906-12.71268432 123.51007099-164.13128096 228.53141851-466.48263918 228.53141851-125.85827383 0-234.33444849-22.96920244-294.09216204-45.93840492l19.730302-157.86940672zM3006.09181546 172.75216735c688.40130256-129.79893606 747.80813523 103.42888812 726.53935551 309.80082928l-40.08139323 381.78539207h-218.51781789l36.57258439-348.20879061c7.90831529-76.68096846 57.13960232-226.66905073-180.54170997-221.05495659-82.26807176 1.99732195-123.05122675 13.2794919-123.05122677 13.27949188s-7.15257186 92.65954408-15.81663059 161.13529804l-41.43093509 394.84895728h-214.3072473l42.53755943-389.15389062 28.09746151-302.43233073z m-869.48282929-18.05687008c49.12332368-5.34418577 124.58970448-10.76934404 228.45044598-10.76934405 173.38913812 0 313.57954648 30.17575597 400.38207891 93.63121421 77.94953781 59.16391512 129.82592689 154.95439631 115.4668015 293.74128117-13.25250106 129.15115596-80.405704 219.57046055-178.16651631 275.4954752-89.44763445 52.74009587-202.16137055 75.27744492-371.66382812 75.27744493-99.94707012 0-195.27870708-5.39816743-267.77609576-16.14052064L2136.635977 154.69529727z m143.26736381 569.85754561c16.70732823 3.23890047 38.67786969 6.45081009 81.99816339 6.45081009 173.44311979 0 295.7386031-85.23706385 308.01943403-205.07638097 17.84094339-173.2271931-90.63523129-233.79463176-273.39018992-232.74198912-23.67096422 0-56.57279475 0-73.98188473 3.1849188l-42.6725136 428.15565036z m-1174.74919792 145.75052083c-41.10704503 14.25116203-126.26313639 23.96786342-245.23874671 23.96786342-342.13585224 0-526.8071603-160.59548129-504.97157303-372.90540663C381.04396273 268.40769434 654.62308851 126.08500985 954.16739966 126.08500985c116.00661824 0 184.32042718 9.33882968 248.31570215 24.99351522l-20.5400271 170.42014604c-42.56455024-14.33213455-142.32268451-27.50366309-223.07926938-27.50366311-176.25016686 0-325.94134993 52.49717834-343.10752238 218.57179958-15.30380469 148.50358623 89.7715245 219.48948804 288.04621451 219.48948804 69.0155707 0 170.77102691-9.8786464 217.81605614-24.15679928l-16.49140154 162.40386737z">
   </path>
  </symbol>
  <symbol id="xieboke1" viewbox="0 0 1024 1024">
   <path d="M204.70021457 751.89799169h657.99199211a33.6932867 33.6932867 0 0 1 0 67.33536736H163.68452703a33.53966977 33.53966977 0 0 1-18.74125054-5.68382181c-18.63883902-9.4218307-18.17798882-29.44322156-15.20806401-39.17228615C199.0675982 570.27171976 309.41567149 409.58853908 435.38145354 290.12586836A243.22661203 243.22661203 0 0 1 536.97336934 234.20935065c138.10150976-33.79569759 228.3257813-29.95527721 318.60125827-28.52152054-17.15387692 20.48224105-36.20236071 41.6301547-57.29906892 62.93168529-3.1747472 3.22595323-164.67721739 19.91897936-187.97576692 47.05794871-23.29854894 27.13896932 129.60138005 7.37360691 125.19769798 11.11161576-21.6599699 18.33160576-44.90731339 36.4071831-69.94685287 53.8682939-4.50609297 3.1747472-149.52035944-0.35843931-174.61110436 27.85584737-25.19315641 28.16308124 101.89914903 18.12678338 96.0617103 21.40394206-67.43777825 37.63611797-125.96578207 64.62147036-212.70807253 93.8086635-57.65750823 19.4069231-121.8181284 133.13456658-146.5504346 179.06599187a435.75967738 435.75967738 0 0 0-23.04252112 49.10617311z" fill="#CA0C16">
   </path>
  </symbol>
  <symbol id="gitchat" viewbox="0 0 1024 1024">
   <path d="M892.08971773 729.08552746h-108.597062v-162.89559374H403.40293801v-108.59706198h488.68677972v271.49265572z m-651.58237345 54.298531V783.49265572h488.68678045v108.59706201H131.91028227V131.91028227h760.17943546v217.19412473h-108.597062V240.50734428H240.50734428v542.87671418z m542.98531145 0h108.597062v108.59706199h-108.597062v-108.59706199z" fill="#FF9100">
   </path>
  </symbol>
  <symbol id="toolbar-memberhead" viewbox="0 0 1303 1024">
   <path d="M1061.51168438 433.79527648A78.51879902 78.51879902 0 1 1 1129.35192643 472.74060007h-1.80593246l-48.05350474 403.97922198c-4.55409058 38.16013652-39.41643684 67.133573-80.79584389 67.13357302H319.35199503c-41.30088817 0-76.00619753-28.81639958-80.717325-66.97653526L189.01078861 472.74060007H187.12633728a78.51879902 78.51879902 0 1 1 67.76172401-38.86680556l193.31328323 119.81968805 158.13686148-336.06046024A78.5973179 78.5973179 0 0 1 658.23913228 80.14660493a78.51879902 78.51879902 0 0 1 51.58685077 137.721974l158.13686147 335.82490362 193.54883986-119.89820607z" fill="#FDD840">
   </path>
   <path d="M1050.8331274 394.22180104a78.51879902 78.51879902 0 1 1 78.51879903 78.51879903h-1.80593246l-48.05350474 403.97922198c-4.55409058 38.16013652-39.41643684 67.133573-80.79584389 67.13357302H659.02432018C658.47468805 793.25433807 658.23913228 505.32590231 658.23913228 80.14660493a78.51879902 78.51879902 0 0 1 51.58685077 137.721974l158.13686147 335.82490362 193.54883986-119.89820607A78.51879902 78.51879902 0 0 1 1050.8331274 394.22180104z" fill="#FFBE00">
   </path>
  </symbol>
  <symbol id="toolbar-m-memberhead" viewbox="0 0 1303 1024">
   <path d="M1062.74839935 433.79527648A78.51879902 78.51879902 0 1 1 1130.58864141 472.74060007h-1.80593246l-48.05350474 403.97922198c-4.55409058 38.16013652-39.41643685 67.133573-80.79584389 67.13357302H320.58871c-41.30088817 0-76.00619753-28.81639958-80.71732499-66.97653526L190.24750358 472.74060007H188.36305226a78.51879902 78.51879902 0 1 1 67.761724-38.86680556l193.31328324 119.81968805 158.13686147-336.06046024A78.5973179 78.5973179 0 0 1 659.47584726 80.14660493a78.51879902 78.51879902 0 0 1 51.58685076 137.721974l158.13686148 335.82490362 193.54883985-119.89820607z" fill="#D6D6D6">
   </path>
   <path d="M1052.06984238 394.22180104a78.51879902 78.51879902 0 1 1 78.51879903 78.51879903h-1.80593246l-48.05350474 403.97922198c-4.55409058 38.16013652-39.41643685 67.133573-80.79584389 67.13357302H660.26103515C659.71140302 793.25433807 659.47584726 505.32590231 659.47584726 80.14660493a78.51879902 78.51879902 0 0 1 51.58685076 137.721974l158.13686148 335.82490362 193.54883985-119.89820607A78.51879902 78.51879902 0 0 1 1052.06984238 394.22180104z" fill="#C1C1C1">
   </path>
  </symbol>
  <symbol id="csdnc-upload" viewbox="0 0 1024 1024">
   <path d="M216.37466416 723.16095396v84.46438188h591.25067168v-84.46438188c0-23.32483876 18.90735218-42.23219094 42.23219093-42.23219021s42.23219094 18.90735218 42.23219096 42.23219021v84.46438188c0 46.64967827-37.81470362 84.46438188-84.46438189 84.46438189H216.37466416c-46.64967827 0-84.46438188-37.81470362-84.46438189-84.4643819v-84.46438187c0-23.32483876 18.90735218-42.23219094 42.23219096-42.23219021s42.23219094 18.90735218 42.23219094 42.23219021zM469.76780906 275.55040991L246.55378774 499.53305726a42.30820888 42.30820888 0 0 1-59.99082735 0c-16.56346508-16.62259056-16.56346508-43.57095155 0-60.19354139L480.51167818 144.38144832A42.21952103 42.21952103 0 0 1 512 131.93984464a42.20262858 42.20262858 0 0 1 31.48409853 12.44160369l293.95294108 294.95806754c16.56346508 16.62259056 16.56346508 43.57095155 0 60.19354139a42.30820888 42.30820888 0 0 1-59.99082735 0L554.23219094 275.55040991V680.92876375c0 23.32483876-18.90735218 42.23219094-42.23219094 42.23219021s-42.23219094-18.90735218-42.23219094-42.23219021V275.55040991z">
   </path>
  </symbol>
 </svg>
 <div data-v-app="" id="c_chat">
  <div class="chat-wrapper simple" darkmode="false" id="chat-pro" simplemode="true">
   <!-- -->
   <div class="el-overlay chat-drawer" style="z-index: 2001; display: none;">
    <div aria-describedby="el-id-1541-1" aria-labelledby="el-id-1541-0" aria-modal="true" class="chat-drawer el-drawer rtl" role="dialog" style="width: 65%;">
     <span class="el-drawer__sr-focus" tabindex="-1">
     </span>
     <!--v-if-->
     <!--v-if-->
     <!--v-if-->
    </div>
   </div>
  </div>
 </div>
</body>
<!-- 富文本柱状图  -->
